diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp index f617bd88b880f2ed180ba4825c8bdd7223475304..4427715e7135906be30fcf0f271a54f616e4b2a5 100644 --- a/GUI/coregui/Models/BeamItems.cpp +++ b/GUI/coregui/Models/BeamItems.cpp @@ -18,6 +18,7 @@ #include "BeamDistributionItem.h" #include "BeamWavelengthItem.h" #include "BornAgainNamespace.h" +#include "FootprintItems.h" #include "GUIHelpers.h" #include "ParameterTranslators.h" #include "SessionItemUtils.h" @@ -150,6 +151,11 @@ void SpecularBeamItem::setInclinationAngle(double value) BeamItem::setInclinationAngle(value); } +FootprintItem* SpecularBeamItem::currentFootprintItem() const +{ + return &groupItem<FootprintItem>(P_FOOPTPRINT); +} + // GISAS beam item /* ------------------------------------------------------------------------- */ diff --git a/GUI/coregui/Models/BeamItems.h b/GUI/coregui/Models/BeamItems.h index 6b8e8ee791c03c08e171f2a798826dada94828e0..3a7a7305a56e3dfdec4d9299e9ca7b2b33cb32bd 100644 --- a/GUI/coregui/Models/BeamItems.h +++ b/GUI/coregui/Models/BeamItems.h @@ -18,6 +18,7 @@ #include "SessionItem.h" class Beam; +class FootprintItem; class BA_CORE_API_ BeamItem : public SessionItem { @@ -60,6 +61,8 @@ public: double getInclinationAngle() const override; void setInclinationAngle(double value) override; + + FootprintItem* currentFootprintItem() const; }; class BA_CORE_API_ GISASBeamItem : public BeamItem diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp index 3cc2fd9c6980fe71d11a64c5c3ab6720a8b7eb8c..f012f48d345ae09a4e3e78ba445cad4d5189ac7f 100644 --- a/GUI/coregui/Models/InstrumentItems.cpp +++ b/GUI/coregui/Models/InstrumentItems.cpp @@ -102,6 +102,11 @@ SpecularInstrumentItem::SpecularInstrumentItem() initBeamGroup(Constants::SpecularBeamType); } +SpecularBeamItem* SpecularInstrumentItem::beamItem() const +{ + return &item<SpecularBeamItem>(P_BEAM); +} + SpecularInstrumentItem::~SpecularInstrumentItem() = default; std::unique_ptr<Instrument> SpecularInstrumentItem::createInstrument() const diff --git a/GUI/coregui/Models/InstrumentItems.h b/GUI/coregui/Models/InstrumentItems.h index f5f6ea252356e3e15ccf89b81a9567c8d8b20bef..f0dc2c31eb544b60df7445cad16be45df151b887 100644 --- a/GUI/coregui/Models/InstrumentItems.h +++ b/GUI/coregui/Models/InstrumentItems.h @@ -15,10 +15,9 @@ #ifndef INSTRUMENTITEMS_H #define INSTRUMENTITEMS_H -#include "SessionItem.h" +#include "BeamItems.h" class BackgroundItem; -class BeamItem; class DetectorItem; class GroupItem; class Instrument; @@ -33,7 +32,7 @@ public: QStringList translateList(const QStringList& list) const override; - BeamItem* beamItem() const; + virtual BeamItem* beamItem() const; BackgroundItem* backgroundItem() const; GroupItem* backgroundGroup(); @@ -51,6 +50,8 @@ public: SpecularInstrumentItem(); virtual ~SpecularInstrumentItem(); + SpecularBeamItem* beamItem() const override; + std::unique_ptr<Instrument> createInstrument() const override; }; diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp index 17019597ef2d03a12e4ec2efe6cedb158db5c9ce..2afd8cd3f44dbe9e89d3ccde6db6eebde2043699 100644 --- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp +++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp @@ -64,7 +64,7 @@ SpecularBeamEditor::SpecularBeamEditor(ColumnResizer* columnResizer, QWidget* pa void SpecularBeamEditor::subscribeToItem() { - const auto beam_item = beamItem(); + const auto beam_item = instrumentItem()->beamItem(); Q_ASSERT(beam_item); m_intensityEditor->setItem(beam_item->getItem(SpecularBeamItem::P_INTENSITY)); @@ -96,11 +96,6 @@ SpecularInstrumentItem* SpecularBeamEditor::instrumentItem() return result; } -BeamItem* SpecularBeamEditor::beamItem() -{ - return instrumentItem()->beamItem(); -} - void SpecularBeamEditor::onDialogRequest(SessionItem* item, const QString& name) { if(!item) diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h index df8a3c33f22b6f12f5eaac2d96505851a52c672f..7d8d34cd87348142878956d3456f61e0a9f0dd72 100644 --- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h +++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h @@ -38,7 +38,6 @@ protected: private: SpecularInstrumentItem* instrumentItem(); - BeamItem* beamItem(); void onDialogRequest(SessionItem* item, const QString& name); ColumnResizer* m_columnResizer;