From d1af3d949cbb7e43c1806a61b65acc4c76ad57fc Mon Sep 17 00:00:00 2001 From: Joachim Wuttke <j.wuttke@fz-juelich.de> Date: Wed, 10 Jul 2024 23:31:32 +0200 Subject: [PATCH] provide XML::writeTaggedElement and use it use it where we had t.writeTo or t->writeTo --- GUI/Model/Beam/BeamDistributionItem.cpp | 4 +- GUI/Model/Beam/GrazingScanItem.cpp | 8 +--- GUI/Model/Beam/SourceItems.cpp | 20 +++------- GUI/Model/Data/Data2DItem.cpp | 4 +- GUI/Model/Data/DataItem.cpp | 8 +--- GUI/Model/Detector/DetectorItem.cpp | 20 +++------- GUI/Model/Detector/OffspecDetectorItem.cpp | 8 +--- GUI/Model/Job/JobItem.cpp | 32 ++++------------ GUI/Model/Mask/MaskItems.cpp | 4 +- GUI/Model/Material/MaterialItem.cpp | 4 +- GUI/Model/Material/MaterialsSet.cpp | 4 +- GUI/Model/Mini/MinimizerItems.cpp | 44 ++++++---------------- GUI/Model/Par/ParameterTreeItems.cpp | 4 +- GUI/Model/Sample/CoreAndShellItem.cpp | 8 +--- GUI/Model/Sample/InterferenceItems.cpp | 24 +++--------- GUI/Model/Sample/ItemWithParticles.cpp | 8 +--- GUI/Model/Sample/LayerItem.cpp | 8 +--- GUI/Model/Sample/MesocrystalItem.cpp | 20 +++------- GUI/Model/Sample/ParticleItem.cpp | 4 +- GUI/Model/Sample/ParticleLayoutItem.cpp | 4 +- GUI/Model/Sample/SampleItem.cpp | 12 ++---- GUI/Model/Sample/SamplesSet.cpp | 4 +- GUI/Model/Sim/InstrumentItems.cpp | 32 ++++------------ GUI/Model/Sim/InstrumentsSet.cpp | 4 +- GUI/Model/Tune/FitParameterItem.cpp | 20 +++------- GUI/Model/Tune/FitParameterLinkItem.cpp | 4 +- GUI/Model/Tune/FitSuiteItem.cpp | 8 +--- GUI/Model/Util/UtilXML.h | 6 +++ 28 files changed, 87 insertions(+), 243 deletions(-) diff --git a/GUI/Model/Beam/BeamDistributionItem.cpp b/GUI/Model/Beam/BeamDistributionItem.cpp index ce6e01cd3ad..7b8d5a62cfb 100644 --- a/GUI/Model/Beam/BeamDistributionItem.cpp +++ b/GUI/Model/Beam/BeamDistributionItem.cpp @@ -30,9 +30,7 @@ BeamDistributionItem::~BeamDistributionItem() = default; void BeamDistributionItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(2)); - w->writeStartElement(Tag::Distribution); - m_distribution.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Distribution, m_distribution); } void BeamDistributionItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Beam/GrazingScanItem.cpp b/GUI/Model/Beam/GrazingScanItem.cpp index 0bee467e8ef..9783edfc795 100644 --- a/GUI/Model/Beam/GrazingScanItem.cpp +++ b/GUI/Model/Beam/GrazingScanItem.cpp @@ -86,16 +86,12 @@ void GrazingScanItem::writeTo(QXmlStreamWriter* w) const // uniform axis if (m_uniform_alpha_axis) { - w->writeStartElement(Tag::UniformAxis); - m_uniform_alpha_axis->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::UniformAxis, *m_uniform_alpha_axis); } // pointwise axis if (m_pointwise_alpha_axis) { - w->writeStartElement(Tag::ListScan); - m_pointwise_alpha_axis->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::ListScan, *m_pointwise_alpha_axis); } } diff --git a/GUI/Model/Beam/SourceItems.cpp b/GUI/Model/Beam/SourceItems.cpp index 1aea8195948..64c1adf468c 100644 --- a/GUI/Model/Beam/SourceItems.cpp +++ b/GUI/Model/Beam/SourceItems.cpp @@ -65,16 +65,10 @@ void SourceItem::writeTo(QXmlStreamWriter* w) const // intensity m_intensity.writeTo2(w, Tag::Intensity); - w->writeStartElement(Tag::Wavelength); - m_wavelength_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::AzimuthalAngle); - m_azimuthal_angle_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Wavelength, *m_wavelength_item); + XML::writeTaggedElement(w, Tag::AzimuthalAngle, *m_azimuthal_angle_item); XML::writeTaggedValue(w, Tag::ExpandBeamParametersGroupbox, expandBeamParameters); - w->writeStartElement(Tag::Footprint); - m_footprint.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Footprint, m_footprint); XML::writeTaggedValue(w, Tag::ExpandFootprintGroupbox, expandFootprint); } @@ -182,9 +176,7 @@ void BeamItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::BaseData); SourceItem::writeTo(w); w->writeEndElement(); - w->writeStartElement(Tag::InclinationAngle); - m_inclination_angle_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::InclinationAngle, *m_inclination_angle_item); } void BeamItem::readFrom(QXmlStreamReader* r) @@ -270,9 +262,7 @@ void ScanItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::BaseData); SourceItem::writeTo(w); w->writeEndElement(); - w->writeStartElement(Tag::GrazingScan); - m_grazing_scan_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::GrazingScan, *m_grazing_scan_item); } void ScanItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Data/Data2DItem.cpp b/GUI/Model/Data/Data2DItem.cpp index 53d47322e47..09cc58582f8 100644 --- a/GUI/Model/Data/Data2DItem.cpp +++ b/GUI/Model/Data/Data2DItem.cpp @@ -218,9 +218,7 @@ void Data2DItem::writeTo(QXmlStreamWriter* w) const DataItem::writeBaseTo(w); w->writeEndElement(); XML::writeTaggedValue(w, Tag::Interpolation, m_is_interpolated); - w->writeStartElement(Tag::ZAxis); - m_z_axis->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::ZAxis, *m_z_axis); } void Data2DItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Data/DataItem.cpp b/GUI/Model/Data/DataItem.cpp index c0fa568eea3..1cd2886745b 100644 --- a/GUI/Model/Data/DataItem.cpp +++ b/GUI/Model/Data/DataItem.cpp @@ -217,12 +217,8 @@ void DataItem::writeBaseTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(3)); XML::writeTaggedValue(w, Tag::FileName, m_fname); - w->writeStartElement(Tag::XAxis); - m_x_axis->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::YAxis); - m_y_axis->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::XAxis, *m_x_axis); + XML::writeTaggedElement(w, Tag::YAxis, *m_y_axis); } void DataItem::readBaseFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Detector/DetectorItem.cpp b/GUI/Model/Detector/DetectorItem.cpp index ff99e7f7c71..5e2defa996b 100644 --- a/GUI/Model/Detector/DetectorItem.cpp +++ b/GUI/Model/Detector/DetectorItem.cpp @@ -89,22 +89,12 @@ std::unique_ptr<IResolutionFunction2D> DetectorItem::createResolutionFunction() void DetectorItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(2)); - w->writeStartElement(Tag::PhiAxis); - m_phi_axis.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::AlphaAxis); - m_alpha_axis.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::ResolutionFunction); - m_resolution_function.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::PhiAxis, m_phi_axis); + XML::writeTaggedElement(w, Tag::AlphaAxis, m_alpha_axis); + XML::writeTaggedElement(w, Tag::ResolutionFunction, m_resolution_function); XML::writeTaggedValue(w, Tag::ExpandResolutionFuncGroupbox, expandResolutionFunc); - w->writeStartElement(Tag::MaskContainer); - m_masks->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::ProjectionContainer); - m_prjns->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::MaskContainer, *m_masks); + XML::writeTaggedElement(w, Tag::ProjectionContainer, *m_prjns); } void DetectorItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Detector/OffspecDetectorItem.cpp b/GUI/Model/Detector/OffspecDetectorItem.cpp index 4694bcb82a0..b73d69e8b41 100644 --- a/GUI/Model/Detector/OffspecDetectorItem.cpp +++ b/GUI/Model/Detector/OffspecDetectorItem.cpp @@ -44,12 +44,8 @@ OffspecDetectorItem::OffspecDetectorItem() void OffspecDetectorItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); - w->writeStartElement(Tag::PhiAxis); - m_phi_axis.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::AlphaAxis); - m_alpha_axis.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::PhiAxis, m_phi_axis); + XML::writeTaggedElement(w, Tag::AlphaAxis, m_alpha_axis); } void OffspecDetectorItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Job/JobItem.cpp b/GUI/Model/Job/JobItem.cpp index bfb03869508..52a20648133 100644 --- a/GUI/Model/Job/JobItem.cpp +++ b/GUI/Model/Job/JobItem.cpp @@ -208,42 +208,26 @@ void JobItem::cropRealData() void JobItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(2)); - w->writeStartElement(Tag::SimulationOptions); - m_simulation_options_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Instrument); - m_instrument.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Sample); - m_sample_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::ParameterContainer); - m_parameter_container->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::BatchInfo); - m_batch_info->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::SimulationOptions, *m_simulation_options_item); + XML::writeTaggedElement(w, Tag::Instrument, m_instrument); + XML::writeTaggedElement(w, Tag::Sample, *m_sample_item); + XML::writeTaggedElement(w, Tag::ParameterContainer, *m_parameter_container); + XML::writeTaggedElement(w, Tag::BatchInfo, *m_batch_info); XML::writeTaggedValue(w, Tag::Activity, m_activity); // simulated data if (m_simulated_data_item) { - w->writeStartElement(Tag::SimulatedData); - m_simulated_data_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::SimulatedData, *m_simulated_data_item); } // real item if (m_dfile_item) { - w->writeStartElement(Tag::DatafileItem); - m_dfile_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::DatafileItem, *m_dfile_item); } // fit suite if (m_fit_suite_item) { - w->writeStartElement(Tag::FitSuite); - m_fit_suite_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::FitSuite, *m_fit_suite_item); } } diff --git a/GUI/Model/Mask/MaskItems.cpp b/GUI/Model/Mask/MaskItems.cpp index 907dde80b84..8303126d7a8 100644 --- a/GUI/Model/Mask/MaskItems.cpp +++ b/GUI/Model/Mask/MaskItems.cpp @@ -228,9 +228,7 @@ void PolygonItem::writeTo(QXmlStreamWriter* w) const // polygon points for (const auto* p : m_points) { - w->writeStartElement(Tag::Vertex); - p->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Vertex, *p); } } diff --git a/GUI/Model/Material/MaterialItem.cpp b/GUI/Model/Material/MaterialItem.cpp index febd2d32d16..b306d8a92b1 100644 --- a/GUI/Model/Material/MaterialItem.cpp +++ b/GUI/Model/Material/MaterialItem.cpp @@ -137,9 +137,7 @@ void MaterialItem::writeTo(QXmlStreamWriter* w) const XML::writeTaggedValue(w, Tag::Name, m_name); XML::writeTaggedValue(w, Tag::Id, m_id); XML::writeTaggedValue(w, Tag::Color, m_color); - w->writeStartElement(Tag::Magnetization); - m_magnetization.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Magnetization, m_magnetization); XML::writeTaggedValue(w, Tag::UseRefractiveIndex, m_use_refractive_index); if (m_use_refractive_index) { diff --git a/GUI/Model/Material/MaterialsSet.cpp b/GUI/Model/Material/MaterialsSet.cpp index 036f2d71efb..a6479d902d9 100644 --- a/GUI/Model/Material/MaterialsSet.cpp +++ b/GUI/Model/Material/MaterialsSet.cpp @@ -157,9 +157,7 @@ void MaterialsSet::writeTo(QXmlStreamWriter* w) const // materials for (const auto* material : *this) { - w->writeStartElement(Tag::Material); - material->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Material, *material); } } diff --git a/GUI/Model/Mini/MinimizerItems.cpp b/GUI/Model/Mini/MinimizerItems.cpp index 303b8494165..f29fe7087ed 100644 --- a/GUI/Model/Mini/MinimizerItems.cpp +++ b/GUI/Model/Mini/MinimizerItems.cpp @@ -287,33 +287,15 @@ std::unique_ptr<ObjectiveMetric> MinimizerContainerItem::createMetric() const void MinimizerContainerItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); - w->writeStartElement(Tag::Algorithm); - m_algorithm.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Minimizer); - m_minimizer.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Metric); - m_metric.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Norm); - m_norm.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::MinuitMinimizer); - m_MinuitMinimizer->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::GSLMultiMinimizer); - m_GSLMultiMinimizer->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::GeneticMinimizer); - m_GeneticMinimizer->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::SimAnMinimizer); - m_SimAnMinimizer->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::GSLLMAMinimizer); - m_GSLLMAMinimizer->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Algorithm, m_algorithm); + XML::writeTaggedElement(w, Tag::Minimizer, m_minimizer); + XML::writeTaggedElement(w, Tag::Metric, m_metric); + XML::writeTaggedElement(w, Tag::Norm, m_norm); + XML::writeTaggedElement(w, Tag::MinuitMinimizer, *m_MinuitMinimizer); + XML::writeTaggedElement(w, Tag::GSLMultiMinimizer, *m_GSLMultiMinimizer); + XML::writeTaggedElement(w, Tag::GeneticMinimizer, *m_GeneticMinimizer); + XML::writeTaggedElement(w, Tag::SimAnMinimizer, *m_SimAnMinimizer); + XML::writeTaggedElement(w, Tag::GSLLMAMinimizer, *m_GSLLMAMinimizer); } void MinimizerContainerItem::readFrom(QXmlStreamReader* r) @@ -417,9 +399,7 @@ std::unique_ptr<IMinimizer> MinuitMinimizerItem::createMinimizer() const void MinuitMinimizerItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); - w->writeStartElement(Tag::Algorithm); - m_algorithm.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Algorithm, m_algorithm); XML::writeTaggedValue(w, Tag::Strategy, m_strategy); XML::writeTaggedValue(w, Tag::ErrorDef, m_error_def); XML::writeTaggedValue(w, Tag::Tolerance, m_tolerance); @@ -489,9 +469,7 @@ std::unique_ptr<IMinimizer> GSLMultiMinimizerItem::createMinimizer() const void GSLMultiMinimizerItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); - w->writeStartElement(Tag::Algorithm); - m_algorithm.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Algorithm, m_algorithm); XML::writeTaggedValue(w, Tag::MaxIterations, m_max_iterations); } diff --git a/GUI/Model/Par/ParameterTreeItems.cpp b/GUI/Model/Par/ParameterTreeItems.cpp index c806e9522b0..1d41a80afeb 100644 --- a/GUI/Model/Par/ParameterTreeItems.cpp +++ b/GUI/Model/Par/ParameterTreeItems.cpp @@ -157,9 +157,7 @@ void ParameterContainerItem::writeTo(QXmlStreamWriter* w) const XML::writeTaggedValue(w, Tag::CurrentIndex, m_current_index); w->writeStartElement(Tag::Backups); for (const auto& backup : m_backup_values) { - w->writeStartElement(Tag::Backup); - backup->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Backup, *backup); } w->writeEndElement(); w->writeStartElement(Tag::ParameterLabels); diff --git a/GUI/Model/Sample/CoreAndShellItem.cpp b/GUI/Model/Sample/CoreAndShellItem.cpp index 1070403e101..d6d88c81794 100644 --- a/GUI/Model/Sample/CoreAndShellItem.cpp +++ b/GUI/Model/Sample/CoreAndShellItem.cpp @@ -56,16 +56,12 @@ void CoreAndShellItem::writeTo(QXmlStreamWriter* w) const // core if (m_core) { - w->writeStartElement(Tag::Core); - m_core->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Core, *m_core); } // shell if (m_shell) { - w->writeStartElement(Tag::Shell); - m_shell->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Shell, *m_shell); } XML::writeTaggedValue(w, Tag::ExpandMainGroupbox, expandMain); XML::writeTaggedValue(w, Tag::ExpandCoreGroupbox, expandCore); diff --git a/GUI/Model/Sample/InterferenceItems.cpp b/GUI/Model/Sample/InterferenceItems.cpp index 3030874e648..316815f732a 100644 --- a/GUI/Model/Sample/InterferenceItems.cpp +++ b/GUI/Model/Sample/InterferenceItems.cpp @@ -105,9 +105,7 @@ void Interference1DLatticeItem::writeTo(QXmlStreamWriter* w) const // rotation angle m_rotation_angle.writeTo2(w, Tag::RotationAngle); - w->writeStartElement(Tag::DecayFunction); - m_decay_function.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::DecayFunction, m_decay_function); } void Interference1DLatticeItem::readFrom(QXmlStreamReader* r) @@ -142,9 +140,7 @@ void Interference2DAbstractLatticeItem::writeTo(QXmlStreamWriter* w) const InterferenceItem::writeTo(w); w->writeEndElement(); XML::writeTaggedValue(w, Tag::IntegrateOverXi, m_xi_integration); - w->writeStartElement(Tag::LatticeType); - m_lattice_type.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::LatticeType, m_lattice_type); } void Interference2DAbstractLatticeItem::readFrom(QXmlStreamReader* r) @@ -204,9 +200,7 @@ void Interference2DLatticeItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::BaseData); Interference2DAbstractLatticeItem::writeTo(w); w->writeEndElement(); - w->writeStartElement(Tag::DecayFunction); - m_decay_function.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::DecayFunction, m_decay_function); } void Interference2DLatticeItem::readFrom(QXmlStreamReader* r) @@ -277,12 +271,8 @@ void Interference2DParacrystalItem::writeTo(QXmlStreamWriter* w) const // domain size 2 m_domain_size2.writeTo2(w, Tag::DomainSize2); - w->writeStartElement(Tag::PDF1); - m_pdf1.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::PDF2); - m_pdf2.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::PDF1, m_pdf1); + XML::writeTaggedElement(w, Tag::PDF2, m_pdf2); } void Interference2DParacrystalItem::readFrom(QXmlStreamReader* r) @@ -460,9 +450,7 @@ void InterferenceRadialParacrystalItem::writeTo(QXmlStreamWriter* w) const // kappa m_kappa.writeTo2(w, Tag::Kappa); - w->writeStartElement(Tag::PDF); - m_pdf.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::PDF, m_pdf); } void InterferenceRadialParacrystalItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Sample/ItemWithParticles.cpp b/GUI/Model/Sample/ItemWithParticles.cpp index 738cfc42253..07bf9d50658 100644 --- a/GUI/Model/Sample/ItemWithParticles.cpp +++ b/GUI/Model/Sample/ItemWithParticles.cpp @@ -49,12 +49,8 @@ void ItemWithParticles::writeTo(QXmlStreamWriter* w) const // abundance m_abundance.writeTo2(w, Tag::Abundance); - w->writeStartElement(Tag::Position); - m_position.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Rotation); - m_rotation.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Position, m_position); + XML::writeTaggedElement(w, Tag::Rotation, m_rotation); } void ItemWithParticles::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Sample/LayerItem.cpp b/GUI/Model/Sample/LayerItem.cpp index d2b2032782d..a411441d131 100644 --- a/GUI/Model/Sample/LayerItem.cpp +++ b/GUI/Model/Sample/LayerItem.cpp @@ -129,15 +129,11 @@ void LayerItem::writeTo(QXmlStreamWriter* w) const // thickness m_thickness.writeTo2(w, Tag::Thickness); - w->writeStartElement(Tag::Roughness); - m_roughness.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Roughness, m_roughness); // particle layouts for (const auto* layout : m_layouts) { - w->writeStartElement(Tag::Layout); - layout->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Layout, *layout); } XML::writeTaggedValue(w, Tag::ExpandLayerGroupbox, expandLayer); } diff --git a/GUI/Model/Sample/MesocrystalItem.cpp b/GUI/Model/Sample/MesocrystalItem.cpp index adc8a4655cf..64d58f972aa 100644 --- a/GUI/Model/Sample/MesocrystalItem.cpp +++ b/GUI/Model/Sample/MesocrystalItem.cpp @@ -67,21 +67,11 @@ void MesocrystalItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::BaseData); ItemWithParticles::writeTo(w); w->writeEndElement(); - w->writeStartElement(Tag::VectorA); - m_vectorA.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::VectorB); - m_vectorB.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::VectorC); - m_vectorC.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::OuterShape); - m_outer_shape.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::BasisParticle); - m_basis_particle.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::VectorA, m_vectorA); + XML::writeTaggedElement(w, Tag::VectorB, m_vectorB); + XML::writeTaggedElement(w, Tag::VectorC, m_vectorC); + XML::writeTaggedElement(w, Tag::OuterShape, m_outer_shape); + XML::writeTaggedElement(w, Tag::BasisParticle, m_basis_particle); XML::writeTaggedValue(w, Tag::ExpandMesocrystalGroupbox, expandMesocrystal); } diff --git a/GUI/Model/Sample/ParticleItem.cpp b/GUI/Model/Sample/ParticleItem.cpp index 85873363333..ab38ec63bec 100644 --- a/GUI/Model/Sample/ParticleItem.cpp +++ b/GUI/Model/Sample/ParticleItem.cpp @@ -53,9 +53,7 @@ void ParticleItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::MaterialData); ItemWithMaterial::writeTo(w); w->writeEndElement(); - w->writeStartElement(Tag::FormFactor); - m_form_factor.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::FormFactor, m_form_factor); XML::writeTaggedValue(w, Tag::ExpandParticleGroupbox, expandParticle); } diff --git a/GUI/Model/Sample/ParticleLayoutItem.cpp b/GUI/Model/Sample/ParticleLayoutItem.cpp index be08a57efd1..955c9a06664 100644 --- a/GUI/Model/Sample/ParticleLayoutItem.cpp +++ b/GUI/Model/Sample/ParticleLayoutItem.cpp @@ -107,9 +107,7 @@ void ParticleLayoutItem::writeTo(QXmlStreamWriter* w) const // own density m_own_density.writeTo2(w, Tag::OwnDensity); - w->writeStartElement(Tag::InterferenceFunction); - m_interference.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::InterferenceFunction, m_interference); // particles for (auto* t : m_particles) { diff --git a/GUI/Model/Sample/SampleItem.cpp b/GUI/Model/Sample/SampleItem.cpp index 86386705f63..95a9864ec0d 100644 --- a/GUI/Model/Sample/SampleItem.cpp +++ b/GUI/Model/Sample/SampleItem.cpp @@ -132,18 +132,12 @@ void SampleItem::writeTo(QXmlStreamWriter* w) const // cross-correlation length m_cross_correlation_length.writeTo2(w, Tag::CrossCorrelationLength); - w->writeStartElement(Tag::ExternalField); - m_external_field.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::MaterialsSet); - m_materials.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::ExternalField, m_external_field); + XML::writeTaggedElement(w, Tag::MaterialsSet, m_materials); // layers for (const auto* layer : m_layers) { - w->writeStartElement(Tag::Layer); - layer->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Layer, *layer); } XML::writeTaggedValue(w, Tag::ExpandInfoGroupbox, expandInfo); } diff --git a/GUI/Model/Sample/SamplesSet.cpp b/GUI/Model/Sample/SamplesSet.cpp index 67ac7e7614e..e80c61ed00f 100644 --- a/GUI/Model/Sample/SamplesSet.cpp +++ b/GUI/Model/Sample/SamplesSet.cpp @@ -34,9 +34,7 @@ void SamplesSet::writeTo(QXmlStreamWriter* w) const // samples for (const auto* t : *this) { - w->writeStartElement(Tag::Sample); - t->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Sample, *t); } XML::writeTaggedValue(w, Tag::CurrentIndex, currentIndex()); } diff --git a/GUI/Model/Sim/InstrumentItems.cpp b/GUI/Model/Sim/InstrumentItems.cpp index 27f58c492fc..0d416d37888 100644 --- a/GUI/Model/Sim/InstrumentItems.cpp +++ b/GUI/Model/Sim/InstrumentItems.cpp @@ -130,16 +130,10 @@ void InstrumentItem::writeTo(QXmlStreamWriter* w) const XML::writeTaggedValue(w, Tag::Name, name()); XML::writeTaggedValue(w, Tag::Description, description()); XML::writeTaggedValue(w, Tag::WithPolarizer, m_with_polarizer); - w->writeStartElement(Tag::PolarizerBlochVector); - m_polarizer_bloch_vector.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::PolarizerBlochVector, m_polarizer_bloch_vector); XML::writeTaggedValue(w, Tag::WithAnalyzer, m_with_analyzer); - w->writeStartElement(Tag::AnalyzerBlochVector); - m_analyzer_bloch_vector.writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Background); - m_background.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::AnalyzerBlochVector, m_analyzer_bloch_vector); + XML::writeTaggedElement(w, Tag::Background, m_background); XML::writeTaggedValue(w, Tag::ExpandInfoGroupbox, expandInfo); XML::writeTaggedValue(w, Tag::ExpandPolarizerAnalyzerGroupbox, expandPolarizerAnalyzer); XML::writeTaggedValue(w, Tag::ExpandEnvironmentGroupbox, expandEnvironment); @@ -237,9 +231,7 @@ std::unique_ptr<PhysicalScan> ScanningInstrumentItem::createScan(const Scale& ax void ScanningInstrumentItem::writeScanTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); - w->writeStartElement(Tag::Scan); - m_scan_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Scan, *m_scan_item); } void ScanningInstrumentItem::readScanFrom(QXmlStreamReader* r) @@ -322,12 +314,8 @@ void Scatter2DInstrumentItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::BaseData); InstrumentItem::writeTo(w); w->writeEndElement(); - w->writeStartElement(Tag::Beam); - m_beam_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::Detector); - m_detector_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Beam, *m_beam_item); + XML::writeTaggedElement(w, Tag::Detector, *m_detector_item); } void Scatter2DInstrumentItem::readFrom(QXmlStreamReader* r) @@ -423,9 +411,7 @@ void OffspecInstrumentItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::ScanParameters); ScanningInstrumentItem::writeScanTo(w); w->writeEndElement(); - w->writeStartElement(Tag::Detector); - m_detector->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Detector, *m_detector); } void OffspecInstrumentItem::readFrom(QXmlStreamReader* r) @@ -626,9 +612,7 @@ void DepthprobeInstrumentItem::writeTo(QXmlStreamWriter* w) const w->writeStartElement(Tag::ScanParameters); ScanningInstrumentItem::writeScanTo(w); w->writeEndElement(); - w->writeStartElement(Tag::ZAxis); - m_z_axis.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::ZAxis, m_z_axis); } void DepthprobeInstrumentItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Sim/InstrumentsSet.cpp b/GUI/Model/Sim/InstrumentsSet.cpp index 079c8781536..ade6b8a1100 100644 --- a/GUI/Model/Sim/InstrumentsSet.cpp +++ b/GUI/Model/Sim/InstrumentsSet.cpp @@ -33,9 +33,7 @@ void InstrumentsSet::writeTo(QXmlStreamWriter* w) const // instruments for (const auto* t : *this) { - w->writeStartElement(Tag::Instrument); - t->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Instrument, *t); } XML::writeTaggedValue(w, Tag::CurrentIndex, currentIndex()); } diff --git a/GUI/Model/Tune/FitParameterItem.cpp b/GUI/Model/Tune/FitParameterItem.cpp index 4eb47b868a6..4aa0be2a150 100644 --- a/GUI/Model/Tune/FitParameterItem.cpp +++ b/GUI/Model/Tune/FitParameterItem.cpp @@ -45,9 +45,7 @@ FitTypeItem::FitTypeItem(const ComboProperty& type, QObject* parent) void FitTypeItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); - w->writeStartElement(Tag::Type); - m_type.writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::Type, m_type); } void FitTypeItem::readFrom(QXmlStreamReader* r) @@ -334,18 +332,10 @@ void FitParameterItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); XML::writeTaggedValue(w, Tag::DisplayName, m_display_name); - w->writeStartElement(Tag::TypeItem); - m_type_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::StartValue); - m_start_value_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::MinValue); - m_min_item->writeTo(w); - w->writeEndElement(); - w->writeStartElement(Tag::MaxValue); - m_max_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::TypeItem, *m_type_item); + XML::writeTaggedElement(w, Tag::StartValue, *m_start_value_item); + XML::writeTaggedElement(w, Tag::MinValue, *m_min_item); + XML::writeTaggedElement(w, Tag::MaxValue, *m_max_item); // parameter links for (const auto* fitLink : linkItems()) { diff --git a/GUI/Model/Tune/FitParameterLinkItem.cpp b/GUI/Model/Tune/FitParameterLinkItem.cpp index 6616539b37b..d2e1094b91c 100644 --- a/GUI/Model/Tune/FitParameterLinkItem.cpp +++ b/GUI/Model/Tune/FitParameterLinkItem.cpp @@ -68,9 +68,7 @@ void FitParameterLinkItem::writeTo(QXmlStreamWriter* w) const { XML::writeAttribute(w, XML::Attrib::version, uint(1)); XML::writeTaggedValue(w, Tag::Title, m_title); - w->writeStartElement(Tag::LinkItem); - m_link_item->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::LinkItem, *m_link_item); } void FitParameterLinkItem::readFrom(QXmlStreamReader* r) diff --git a/GUI/Model/Tune/FitSuiteItem.cpp b/GUI/Model/Tune/FitSuiteItem.cpp index f4709738aaf..26976a6a026 100644 --- a/GUI/Model/Tune/FitSuiteItem.cpp +++ b/GUI/Model/Tune/FitSuiteItem.cpp @@ -68,16 +68,12 @@ void FitSuiteItem::writeTo(QXmlStreamWriter* w) const // minimizer container if (m_minimizer_container) { - w->writeStartElement(Tag::MinimizerContainer); - m_minimizer_container->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::MinimizerContainer, *m_minimizer_container); } // fit parameter container if (m_fit_container) { - w->writeStartElement(Tag::FitParameterContainer); - m_fit_container->writeTo(w); - w->writeEndElement(); + XML::writeTaggedElement(w, Tag::FitParameterContainer, *m_fit_container); } } diff --git a/GUI/Model/Util/UtilXML.h b/GUI/Model/Util/UtilXML.h index 621cbce2f81..f3ccb5db98e 100644 --- a/GUI/Model/Util/UtilXML.h +++ b/GUI/Model/Util/UtilXML.h @@ -61,6 +61,12 @@ template <typename T> void writeTaggedValue(QXmlStreamWriter* w, const QString& w->writeEndElement(); }; +template <typename T> void writeTaggedElement(QXmlStreamWriter* w, const QString& tag, T& element) +{ + w->writeStartElement(tag); + element.writeTo(w); + w->writeEndElement(); +} bool readBool(QXmlStreamReader* reader, const QString& attributeName); int readInt(QXmlStreamReader* reader, const QString& attributeName); -- GitLab