diff --git a/GUI/Model/Beam/GrazingScanItem.cpp b/GUI/Model/Beam/GrazingScanItem.cpp index f1e98861e929253aecce7b940a2ee569e332655e..7c4f205ad8092ca3da97092bae724df5d39b15d9 100644 --- a/GUI/Model/Beam/GrazingScanItem.cpp +++ b/GUI/Model/Beam/GrazingScanItem.cpp @@ -108,13 +108,11 @@ void GrazingScanItem::readFrom(QXmlStreamReader* r) else if (tag == Tag::UniformAxis) { m_uniform_alpha_axis = std::make_unique<BasicAxisItem>(); setAxisPresentationDefaults(m_uniform_alpha_axis.get()); - m_uniform_alpha_axis->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + XML::readTaggedElement(r, tag, *m_uniform_alpha_axis); } else if (tag == Tag::ListScan || tag == Tag::PointwiseAxis) { // compatibility with pre-21 m_pointwise_alpha_axis = std::make_unique<PointwiseAxisItem>(); setAxisPresentationDefaults(m_pointwise_alpha_axis.get()); - m_pointwise_alpha_axis->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + XML::readTaggedElement(r, tag, *m_pointwise_alpha_axis); } else r->skipCurrentElement(); diff --git a/GUI/Model/Beam/SourceItems.cpp b/GUI/Model/Beam/SourceItems.cpp index 1d61c688110d4034158ec8a6c20af1bdd86dddeb..ebb92b6e9cbbb8b45d83fc9edf95c5fc4a1f663f 100644 --- a/GUI/Model/Beam/SourceItems.cpp +++ b/GUI/Model/Beam/SourceItems.cpp @@ -83,13 +83,11 @@ void SourceItem::readFrom(QXmlStreamReader* r) QString tag = r->name().toString(); if (tag == Tag::Intensity) { m_intensity.readFrom2(r, tag); - } else if (tag == Tag::Wavelength) { - m_wavelength_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::AzimuthalAngle) { - m_azimuthal_angle_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::ExpandBeamParametersGroupbox) + } else if (tag == Tag::Wavelength) + XML::readTaggedElement(r, tag, *m_wavelength_item); + else if (tag == Tag::AzimuthalAngle) + XML::readTaggedElement(r, tag, *m_azimuthal_angle_item); + else if (tag == Tag::ExpandBeamParametersGroupbox) expandBeamParameters = XML::readTaggedBool(r, tag); else if (tag == Tag::Footprint) XML::readTaggedElement(r, tag, m_footprint); @@ -187,11 +185,10 @@ void BeamItem::readFrom(QXmlStreamReader* r) if (tag == Tag::BaseData) { SourceItem::readFrom(r); XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::InclinationAngle) { - m_inclination_angle_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + } else if (tag == Tag::InclinationAngle) + XML::readTaggedElement(r, tag, *m_inclination_angle_item); - } else + else r->skipCurrentElement(); } } @@ -277,11 +274,10 @@ void ScanItem::readFrom(QXmlStreamReader* r) // footprint groupbox: is expanded? (moved to base class since v21 (version == 2)) } else if (version == 1 && tag == Tag::ExpandFootprintGroupbox) expandFootprint = XML::readTaggedBool(r, tag); - else if (tag == Tag::GrazingScan) { - m_grazing_scan_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + else if (tag == Tag::GrazingScan) + XML::readTaggedElement(r, tag, *m_grazing_scan_item); - } else + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Data/Data2DItem.cpp b/GUI/Model/Data/Data2DItem.cpp index 5e3b86d424f61b420edbd1901eea818d3e88c51d..3624287e79130b0e0021c87cd708e7f9bc521323 100644 --- a/GUI/Model/Data/Data2DItem.cpp +++ b/GUI/Model/Data/Data2DItem.cpp @@ -231,11 +231,10 @@ void Data2DItem::readFrom(QXmlStreamReader* r) XML::gotoEndElementOfTag(r, tag); } else if (tag == Tag::Interpolation) m_is_interpolated = XML::readTaggedBool(r, tag); - else if (tag == Tag::ZAxis) { - m_z_axis->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + else if (tag == Tag::ZAxis) + XML::readTaggedElement(r, tag, *m_z_axis); - } else + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Data/DataItem.cpp b/GUI/Model/Data/DataItem.cpp index 75d646de6fac4dd6fa781ab026f7939ee2568792..af3848c6e58b2398253117006fe27472387589dd 100644 --- a/GUI/Model/Data/DataItem.cpp +++ b/GUI/Model/Data/DataItem.cpp @@ -230,14 +230,12 @@ void DataItem::readFrom(QXmlStreamReader* r) QString tag = r->name().toString(); if (tag == Tag::FileName) m_fname = XML::readTaggedString(r, tag); - else if (tag == Tag::XAxis) { - m_x_axis->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::YAxis) { - m_y_axis->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - - } else + else if (tag == Tag::XAxis) + XML::readTaggedElement(r, tag, *m_x_axis); + else if (tag == Tag::YAxis) + XML::readTaggedElement(r, tag, *m_y_axis); + + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Detector/DetectorItem.cpp b/GUI/Model/Detector/DetectorItem.cpp index 780788e30f457eff3ca058cb9f91f76cf2516f36..fcc6870b8201d5f8548a58b80210eff021f98613 100644 --- a/GUI/Model/Detector/DetectorItem.cpp +++ b/GUI/Model/Detector/DetectorItem.cpp @@ -112,14 +112,12 @@ void DetectorItem::readFrom(QXmlStreamReader* r) XML::readTaggedElement(r, tag, m_resolution_function); else if (tag == Tag::ExpandResolutionFuncGroupbox) expandResolutionFunc = XML::readTaggedBool(r, tag); - else if (tag == Tag::MaskContainer) { - m_masks->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::ProjectionContainer) { - m_prjns->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - - } else + else if (tag == Tag::MaskContainer) + XML::readTaggedElement(r, tag, *m_masks); + else if (tag == Tag::ProjectionContainer) + XML::readTaggedElement(r, tag, *m_prjns); + + else r->skipCurrentElement(); } } diff --git a/GUI/Model/File/DatafileItem.cpp b/GUI/Model/File/DatafileItem.cpp index a274e18d86ed46656f0846b8886250e35666ccb3..333f32d1b8dcc721fd421ca5f944ee6b185c7de9 100644 --- a/GUI/Model/File/DatafileItem.cpp +++ b/GUI/Model/File/DatafileItem.cpp @@ -167,8 +167,7 @@ void DatafileItem::readFrom(QXmlStreamReader* r) m_data_item = std::make_unique<Data2DItem>(); else ASSERT_NEVER; - m_data_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + XML::readTaggedElement(r, tag, *m_data_item); } else r->skipCurrentElement(); diff --git a/GUI/Model/Job/JobItem.cpp b/GUI/Model/Job/JobItem.cpp index 33ac005570869d30e198cf57f7973e147de17374..23be55dd2bac9ddc085aa52df815d837adb81cfa 100644 --- a/GUI/Model/Job/JobItem.cpp +++ b/GUI/Model/Job/JobItem.cpp @@ -238,37 +238,31 @@ void JobItem::readFrom(QXmlStreamReader* r) while (r->readNextStartElement()) { QString tag = r->name().toString(); - if (tag == Tag::SimulationOptions) { - m_simulation_options_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::Instrument) + if (tag == Tag::SimulationOptions) + XML::readTaggedElement(r, tag, *m_simulation_options_item); + else if (tag == Tag::Instrument) XML::readTaggedElement(r, tag, m_instrument); else if (tag == Tag::ParameterContainer) { createParameterTree(); - m_parameter_container->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::Sample) { - m_sample_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::Activity) + XML::readTaggedElement(r, tag, *m_parameter_container); + } else if (tag == Tag::Sample) + XML::readTaggedElement(r, tag, *m_sample_item); + else if (tag == Tag::Activity) m_activity = XML::readTaggedString(r, tag); - else if (tag == Tag::BatchInfo) { - m_batch_info->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::SimulatedData) { + else if (tag == Tag::BatchInfo) + XML::readTaggedElement(r, tag, *m_batch_info); + else if (tag == Tag::SimulatedData) { createSimulatedDataItem(); - m_simulated_data_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + XML::readTaggedElement(r, tag, *m_simulated_data_item); } else if (tag == Tag::DatafileItem) { m_dfile_item = std::make_unique<DatafileItem>(); m_dfile_item->readFrom(r); createDiffDataItem()->checkXYranges(m_dfile_item->dataItem()); XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::FitSuite) { - m_fit_suite_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + } else if (tag == Tag::FitSuite) + XML::readTaggedElement(r, tag, *m_fit_suite_item); - } else + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Job/JobsSet.cpp b/GUI/Model/Job/JobsSet.cpp index cb37d0f903b7d42fff7729128460fe655dd45fdc..e09104ad127528d66fbe707cf385c6fdbb82350b 100644 --- a/GUI/Model/Job/JobsSet.cpp +++ b/GUI/Model/Job/JobsSet.cpp @@ -61,8 +61,7 @@ void JobsSet::readFrom(QXmlStreamReader* r) QString tag = r->name().toString(); if (tag == Tag::Job) { auto* job_item = createJobItem(); - job_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + XML::readTaggedElement(r, tag, *job_item); } else if (tag == Tag::CurrentIndex) { size_t i = XML::readTaggedSize(r, tag); setCurrentIndex(i); diff --git a/GUI/Model/Mini/MinimizerItems.cpp b/GUI/Model/Mini/MinimizerItems.cpp index a641a103dd6d4f7f84a9d5669decf20ef80ee88b..93dda943896158cd7ad3831c9cc7f66932aec218 100644 --- a/GUI/Model/Mini/MinimizerItems.cpp +++ b/GUI/Model/Mini/MinimizerItems.cpp @@ -313,23 +313,18 @@ void MinimizerContainerItem::readFrom(QXmlStreamReader* r) XML::readTaggedElement(r, tag, m_metric); else if (tag == Tag::Norm) XML::readTaggedElement(r, tag, m_norm); - else if (tag == Tag::MinuitMinimizer) { - m_MinuitMinimizer->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::GSLMultiMinimizer) { - m_GSLMultiMinimizer->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::GeneticMinimizer) { - m_GeneticMinimizer->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::SimAnMinimizer) { - m_SimAnMinimizer->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::GSLLMAMinimizer) { - m_GSLLMAMinimizer->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - - } else + else if (tag == Tag::MinuitMinimizer) + XML::readTaggedElement(r, tag, *m_MinuitMinimizer); + else if (tag == Tag::GSLMultiMinimizer) + XML::readTaggedElement(r, tag, *m_GSLMultiMinimizer); + else if (tag == Tag::GeneticMinimizer) + XML::readTaggedElement(r, tag, *m_GeneticMinimizer); + else if (tag == Tag::SimAnMinimizer) + XML::readTaggedElement(r, tag, *m_SimAnMinimizer); + else if (tag == Tag::GSLLMAMinimizer) + XML::readTaggedElement(r, tag, *m_GSLLMAMinimizer); + + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Par/ParameterTreeItems.cpp b/GUI/Model/Par/ParameterTreeItems.cpp index 1d41a80afeb4359fb507918ae80aa1c1ca0419c9..96d5873b265cf0c1ca4e544483a6bf6786409f62 100644 --- a/GUI/Model/Par/ParameterTreeItems.cpp +++ b/GUI/Model/Par/ParameterTreeItems.cpp @@ -199,8 +199,7 @@ void ParameterContainerItem::readFrom(QXmlStreamReader* r) } else if (tag == Tag::ParameterLabels) { auto list = m_parameter_tree_root->findChildren<ParameterLabelItem*>(); for (const auto& item : list) - item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + XML::readTaggedElement(r, tag, *item); } else r->skipCurrentElement(); diff --git a/GUI/Model/Sim/InstrumentItems.cpp b/GUI/Model/Sim/InstrumentItems.cpp index a79df0815714f6f1e1617132e5c92766ff0f3b80..050dc1f93a3b27d606c5bb640d8c72321adb6106 100644 --- a/GUI/Model/Sim/InstrumentItems.cpp +++ b/GUI/Model/Sim/InstrumentItems.cpp @@ -239,11 +239,10 @@ void ScanningInstrumentItem::readFrom(QXmlStreamReader* r) while (r->readNextStartElement()) { QString tag = r->name().toString(); - if (tag == Tag::Scan) { - m_scan_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + if (tag == Tag::Scan) + XML::readTaggedElement(r, tag, *m_scan_item); - } else + else r->skipCurrentElement(); } } @@ -324,14 +323,12 @@ void Scatter2DInstrumentItem::readFrom(QXmlStreamReader* r) if (tag == Tag::BaseData) { InstrumentItem::readFrom(r); XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::Beam) { - m_beam_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::Detector) { - m_detector_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + } else if (tag == Tag::Beam) + XML::readTaggedElement(r, tag, *m_beam_item); + else if (tag == Tag::Detector) + XML::readTaggedElement(r, tag, *m_detector_item); - } else + else r->skipCurrentElement(); } } @@ -421,11 +418,10 @@ void OffspecInstrumentItem::readFrom(QXmlStreamReader* r) } else if (tag == Tag::ScanParameters) { ScanningInstrumentItem::readFrom(r); XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::Detector) { - m_detector->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + } else if (tag == Tag::Detector) + XML::readTaggedElement(r, tag, *m_detector); - } else + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Tune/FitParameterItem.cpp b/GUI/Model/Tune/FitParameterItem.cpp index b34c6a881e7c3f5e300e27a521413a698c8feb90..78cbe72662749780ec776e427933a58633a7d531 100644 --- a/GUI/Model/Tune/FitParameterItem.cpp +++ b/GUI/Model/Tune/FitParameterItem.cpp @@ -352,19 +352,15 @@ void FitParameterItem::readFrom(QXmlStreamReader* r) QString tag = r->name().toString(); if (tag == Tag::DisplayName) m_display_name = XML::readTaggedString(r, tag); - else if (tag == Tag::TypeItem) { - m_type_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::StartValue) { - m_start_value_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::MinValue) { - m_min_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::MaxValue) { - m_max_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::FitLinkItem) { + else if (tag == Tag::TypeItem) + XML::readTaggedElement(r, tag, *m_type_item); + else if (tag == Tag::StartValue) + XML::readTaggedElement(r, tag, *m_start_value_item); + else if (tag == Tag::MinValue) + XML::readTaggedElement(r, tag, *m_min_item); + else if (tag == Tag::MaxValue) + XML::readTaggedElement(r, tag, *m_max_item); + else if (tag == Tag::FitLinkItem) { addLinkItem("", "")->readFrom(r); XML::gotoEndElementOfTag(r, tag); diff --git a/GUI/Model/Tune/FitParameterLinkItem.cpp b/GUI/Model/Tune/FitParameterLinkItem.cpp index d2e1094b91cc90d6dde54e4d93f8e7cc74316042..4e28c29e58956afbf845d11640989fdd39db9217 100644 --- a/GUI/Model/Tune/FitParameterLinkItem.cpp +++ b/GUI/Model/Tune/FitParameterLinkItem.cpp @@ -80,11 +80,10 @@ void FitParameterLinkItem::readFrom(QXmlStreamReader* r) QString tag = r->name().toString(); if (tag == Tag::Title) m_title = XML::readTaggedString(r, tag); - else if (tag == Tag::LinkItem) { - m_link_item->readFrom(r); - XML::gotoEndElementOfTag(r, tag); + else if (tag == Tag::LinkItem) + XML::readTaggedElement(r, tag, *m_link_item); - } else + else r->skipCurrentElement(); } } diff --git a/GUI/Model/Tune/FitSuiteItem.cpp b/GUI/Model/Tune/FitSuiteItem.cpp index 26976a6a026c9ed2b32f48ddfd9da8894bcf7c3f..4d2494442fa4537348398cf82b889e1d1262d038 100644 --- a/GUI/Model/Tune/FitSuiteItem.cpp +++ b/GUI/Model/Tune/FitSuiteItem.cpp @@ -90,14 +90,12 @@ void FitSuiteItem::readFrom(QXmlStreamReader* r) m_iter_count = XML::readTaggedInt(r, tag); else if (tag == Tag::Chi2) m_chi2 = XML::readTaggedDouble(r, tag); - else if (tag == Tag::MinimizerContainer) { - m_minimizer_container->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - } else if (tag == Tag::FitParameterContainer) { - m_fit_container->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - - } else + else if (tag == Tag::MinimizerContainer) + XML::readTaggedElement(r, tag, *m_minimizer_container); + else if (tag == Tag::FitParameterContainer) + XML::readTaggedElement(r, tag, *m_fit_container); + + else r->skipCurrentElement(); } }