diff --git a/GUI/Model/Beam/SourceItems.cpp b/GUI/Model/Beam/SourceItems.cpp index 364c15402485432de7044fdbafe3c5f6a38dbd4b..fe27c5144c104fbca94fd26f9645b4d8a7ff071a 100644 --- a/GUI/Model/Beam/SourceItems.cpp +++ b/GUI/Model/Beam/SourceItems.cpp @@ -54,6 +54,7 @@ SourceItem::SourceItem() Unit::unitless, 3 /* decimals */, RealLimits::limited(0.0, 1e32), "intensity"); m_azimuthalAngleItem.reset(new BeamAzimuthalAngleItem()); + m_footprint.init("Type", "Footprint type"); } void SourceItem::writeTo(QXmlStreamWriter* w) const @@ -268,7 +269,6 @@ ScanItem::ScanItem() { m_grazingScanItem.reset(new GrazingScanItem()); m_wavelengthItem.reset(new BeamWavelengthItem); - m_footprint.init("Type", "Footprint type"); } void ScanItem::setScan(const IBeamScan* scan) diff --git a/GUI/View/Device/FootprintForm.cpp b/GUI/View/Device/FootprintForm.cpp index 7180dfb0b3f866d1e2b478379fc1355bef08cadc..2ce53aa058962271c4affbd68eb88fce9cb688cc 100644 --- a/GUI/View/Device/FootprintForm.cpp +++ b/GUI/View/Device/FootprintForm.cpp @@ -20,13 +20,14 @@ #include "GUI/View/Numeric/NumWidgetUtil.h" #include "GUI/View/Tool/GroupBoxCollapser.h" -FootprintForm::FootprintForm(QWidget* parent, ScanItem* item) +FootprintForm::FootprintForm(QWidget* parent, SourceItem* item) : QGroupBox("Footprint correction", parent) , m_item(item) { ASSERT(item); m_formLayout = new QFormLayout(this); m_formLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); + ASSERT(item->footprintSelection().currentItem()); auto* typeCombo = GUI::Util::createComboBoxFromProperty(item->footprintSelection(), [this](int) { createFootprintWidgets(); diff --git a/GUI/View/Device/FootprintForm.h b/GUI/View/Device/FootprintForm.h index 0c3a284419d1cbc35bb8bd570f82a18d95fc7196..d51c01f2b467f924433b546b62e0ee0d6622d6d6 100644 --- a/GUI/View/Device/FootprintForm.h +++ b/GUI/View/Device/FootprintForm.h @@ -17,7 +17,7 @@ #include <QGroupBox> -class ScanItem; +class SourceItem; class QFormLayout; //! FootprintCorrection editor (i.e. background) for instrument editors. @@ -27,7 +27,7 @@ class FootprintForm : public QGroupBox { Q_OBJECT public: - FootprintForm(QWidget* parent, ScanItem* item); + FootprintForm(QWidget* parent, SourceItem* item); signals: void dataChanged(); @@ -37,7 +37,7 @@ private: private: QFormLayout* m_formLayout; - ScanItem* m_item; + SourceItem* m_item; }; #endif // BORNAGAIN_GUI_VIEW_DEVICE_FOOTPRINTFORM_H diff --git a/GUI/View/Instrument/GISASBeamEditor.cpp b/GUI/View/Instrument/GISASBeamEditor.cpp index c35c150c13ec114775178323eb10ad42e60b60f0..e95d80d0b40220329ebe7d4d01ddc7770d2bd559 100644 --- a/GUI/View/Instrument/GISASBeamEditor.cpp +++ b/GUI/View/Instrument/GISASBeamEditor.cpp @@ -17,6 +17,7 @@ #include "GUI/Model/Beam/BeamAngleItems.h" #include "GUI/Model/Beam/BeamWavelengthItem.h" #include "GUI/Model/Beam/SourceItems.h" +#include "GUI/View/Device/FootprintForm.h" #include "GUI/View/Instrument/DistributionEditor.h" #include "GUI/View/Numeric/FixupDoubleValidator.h" #include "GUI/View/Tool/GroupBoxCollapser.h" @@ -55,6 +56,9 @@ GISASBeamEditor::GISASBeamEditor(QWidget* parent, BeamItem* item) this, item->azimuthalAngleItem()); vLayout->addWidget(azimuthalEditor); + auto* footprintEditor = new FootprintForm(this, item); + vLayout->addWidget(footprintEditor); + intensityEditor->setText(QString::number(item->intensity())); auto* collapser = GroupBoxCollapser::installIntoGroupBox(this); @@ -68,6 +72,7 @@ GISASBeamEditor::GISASBeamEditor(QWidget* parent, BeamItem* item) &GISASBeamEditor::dataChanged); connect(azimuthalEditor, &DistributionEditor::distributionChanged, this, &GISASBeamEditor::dataChanged); + connect(footprintEditor, &FootprintForm::dataChanged, this, &GISASBeamEditor::dataChanged); // validate value while typing connect(intensityEditor, &QLineEdit::textEdited, [this, intensityEditor, item]() {