From ad0e756d797af4211fc1f3e12e39dff939b78794 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Tue, 7 Mar 2023 12:29:49 +0100 Subject: [PATCH] InstrumentItem: move m_beamItem to subclasses --- GUI/Model/Device/InstrumentItems.cpp | 44 +++++++++++++++++++--------- GUI/Model/Device/InstrumentItems.h | 11 ++++++- 2 files changed, 40 insertions(+), 15 deletions(-) diff --git a/GUI/Model/Device/InstrumentItems.cpp b/GUI/Model/Device/InstrumentItems.cpp index e3c503d1172..f3061a1d59d 100644 --- a/GUI/Model/Device/InstrumentItems.cpp +++ b/GUI/Model/Device/InstrumentItems.cpp @@ -120,8 +120,6 @@ void InstrumentItem::setWithPolarizerAnalyzer(bool with) void InstrumentItem::writeTo(QXmlStreamWriter* w) const { - ASSERT(m_beamItem); - XML::writeAttribute(w, XML::Attrib::version, uint(1)); // id @@ -169,11 +167,6 @@ void InstrumentItem::writeTo(QXmlStreamWriter* w) const m_background.writeTo(w); w->writeEndElement(); - // beam - w->writeStartElement(Tag::Beam); - m_beamItem->writeTo(w); - w->writeEndElement(); - // info groupbox: is expanded? w->writeStartElement(Tag::ExpandInfoGroupbox); XML::writeAttribute(w, XML::Attrib::value, m_expandInfo); @@ -197,8 +190,6 @@ void InstrumentItem::writeTo(QXmlStreamWriter* w) const void InstrumentItem::readFrom(QXmlStreamReader* r) { - ASSERT(m_beamItem); - const uint version = XML::readUIntAttribute(r, XML::Attrib::version); Q_UNUSED(version) @@ -250,11 +241,6 @@ void InstrumentItem::readFrom(QXmlStreamReader* r) m_background.readFrom(r); XML::gotoEndElementOfTag(r, tag); - // beam - } else if (tag == Tag::Beam) { - m_beamItem->readFrom(r); - XML::gotoEndElementOfTag(r, tag); - // info groupbox: is expanded? } else if (tag == Tag::ExpandInfoGroupbox) { XML::readAttribute(r, XML::Attrib::value, &m_expandInfo); @@ -437,6 +423,11 @@ void DepthprobeInstrumentItem::writeTo(QXmlStreamWriter* w) const InstrumentItem::writeTo(w); w->writeEndElement(); + // beam + w->writeStartElement(Tag::Beam); + m_beamItem->writeTo(w); + w->writeEndElement(); + // z axis w->writeStartElement(Tag::ZAxis); m_zAxis.writeTo(w); @@ -456,6 +447,11 @@ void DepthprobeInstrumentItem::readFrom(QXmlStreamReader* r) InstrumentItem::readFrom(r); XML::gotoEndElementOfTag(r, tag); + // scan + } else if (tag == Tag::Beam) { + m_beamItem->readFrom(r); + XML::gotoEndElementOfTag(r, tag); + // z axis } else if (tag == Tag::ZAxis) { m_zAxis.readFrom(r); @@ -553,6 +549,11 @@ void OffspecInstrumentItem::writeTo(QXmlStreamWriter* w) const InstrumentItem::writeTo(w); w->writeEndElement(); + // beam + w->writeStartElement(Tag::Beam); + m_beamItem->writeTo(w); + w->writeEndElement(); + // alpha axis w->writeStartElement(Tag::AlphaAxis); m_alphaAxis.writeTo(w); @@ -577,6 +578,11 @@ void OffspecInstrumentItem::readFrom(QXmlStreamReader* r) InstrumentItem::readFrom(r); XML::gotoEndElementOfTag(r, tag); + // scan + } else if (tag == Tag::Beam) { + m_beamItem->readFrom(r); + XML::gotoEndElementOfTag(r, tag); + // alpha axis } else if (tag == Tag::AlphaAxis) { m_alphaAxis.readFrom(r); @@ -671,6 +677,11 @@ void GISASInstrumentItem::writeTo(QXmlStreamWriter* w) const InstrumentItem::writeTo(w); w->writeEndElement(); + // beam + w->writeStartElement(Tag::Beam); + m_beamItem->writeTo(w); + w->writeEndElement(); + // detector w->writeStartElement(Tag::Detector); m_detector.writeTo(w); @@ -690,6 +701,11 @@ void GISASInstrumentItem::readFrom(QXmlStreamReader* r) InstrumentItem::readFrom(r); XML::gotoEndElementOfTag(r, tag); + // beam + } else if (tag == Tag::Beam) { + m_beamItem->readFrom(r); + XML::gotoEndElementOfTag(r, tag); + // detector } else if (tag == Tag::Detector) { m_detector.readFrom(r); diff --git a/GUI/Model/Device/InstrumentItems.h b/GUI/Model/Device/InstrumentItems.h index 347f15a9f3b..845a38a5ed8 100644 --- a/GUI/Model/Device/InstrumentItems.h +++ b/GUI/Model/Device/InstrumentItems.h @@ -125,7 +125,6 @@ protected: QString m_description; bool m_withPolarizerAnalyzer; SelectionProperty<BackgroundItemCatalog> m_background; - std::unique_ptr<BeamItem> m_beamItem; VectorProperty m_polarization; VectorProperty m_analyzerDirection; @@ -153,6 +152,9 @@ public: const ICoordSystem* createCoordSystem() const override; ISimulation* createSimulation(const MultiLayer& sample) const override; + +private: + std::unique_ptr<ScanItem> m_beamItem; }; @@ -183,6 +185,9 @@ protected: mutable std::unique_ptr<const ICoordSystem> m_coosys; AxisProperty m_zAxis; bool m_expandParameters = true; + +private: + std::unique_ptr<ScanItem> m_beamItem; }; @@ -215,6 +220,9 @@ protected: AxisProperty m_alphaAxis; bool m_expandBeamParameters = true; std::unique_ptr<OffspecDetectorItem> m_detector; + +private: + std::unique_ptr<ScanItem> m_beamItem; }; @@ -245,6 +253,7 @@ public: private: SelectionProperty<DetectorItemCatalog> m_detector; + std::unique_ptr<BeamItem> m_beamItem; }; -- GitLab