From 2f618c011cbb0583be1106f6314194334c2e59d8 Mon Sep 17 00:00:00 2001 From: Dmitry Yurov <d.yurov@fz-juelich.de> Date: Wed, 7 Mar 2018 11:55:27 +0100 Subject: [PATCH] Minor changes for better access to footprint items Redmine: #1974 --- GUI/coregui/Models/BeamItems.cpp | 6 ++++++ GUI/coregui/Models/BeamItems.h | 3 +++ GUI/coregui/Models/InstrumentItems.cpp | 5 +++++ GUI/coregui/Models/InstrumentItems.h | 7 ++++--- GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp | 7 +------ GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h | 1 - 6 files changed, 19 insertions(+), 10 deletions(-) diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp index f617bd88b88..4427715e713 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 6b8e8ee791c..3a7a7305a56 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 3cc2fd9c698..f012f48d345 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 f5f6ea25235..f0dc2c31eb5 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 17019597ef2..2afd8cd3f44 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 df8a3c33f22..7d8d34cd873 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; -- GitLab