From eb358b6c03e4f93a20b4ca01e10deab3e65cef6b Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Thu, 11 Jul 2024 12:42:19 +0200 Subject: [PATCH] use readTaggedElement with pointer --- GUI/Model/Beam/GrazingScanItem.cpp | 6 ++--- GUI/Model/Beam/SourceItems.cpp | 26 ++++++++----------- GUI/Model/Data/Data2DItem.cpp | 7 +++-- GUI/Model/Data/DataItem.cpp | 14 +++++----- GUI/Model/Detector/DetectorItem.cpp | 14 +++++----- GUI/Model/File/DatafileItem.cpp | 3 +-- GUI/Model/Job/JobItem.cpp | 34 ++++++++++--------------- GUI/Model/Job/JobsSet.cpp | 3 +-- GUI/Model/Mini/MinimizerItems.cpp | 29 +++++++++------------ GUI/Model/Par/ParameterTreeItems.cpp | 3 +-- GUI/Model/Sim/InstrumentItems.cpp | 26 ++++++++----------- GUI/Model/Tune/FitParameterItem.cpp | 22 +++++++--------- GUI/Model/Tune/FitParameterLinkItem.cpp | 7 +++-- GUI/Model/Tune/FitSuiteItem.cpp | 14 +++++----- 14 files changed, 86 insertions(+), 122 deletions(-) diff --git a/GUI/Model/Beam/GrazingScanItem.cpp b/GUI/Model/Beam/GrazingScanItem.cpp index f1e98861e92..7c4f205ad80 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 1d61c688110..ebb92b6e9cb 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 5e3b86d424f..3624287e791 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 75d646de6fa..af3848c6e58 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 780788e30f4..fcc6870b820 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 a274e18d86e..333f32d1b8d 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 33ac0055708..23be55dd2ba 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 cb37d0f903b..e09104ad127 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 a641a103dd6..93dda943896 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 1d41a80afeb..96d5873b265 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 a79df081571..050dc1f93a3 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 b34c6a881e7..78cbe726627 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 d2e1094b91c..4e28c29e589 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 26976a6a026..4d2494442fa 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(); } } -- GitLab