diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp index 3372a21db36a6e0157b478262ff48e21eb1e5f6f..f617bd88b880f2ed180ba4825c8bdd7223475304 100644 --- a/GUI/coregui/Models/BeamItems.cpp +++ b/GUI/coregui/Models/BeamItems.cpp @@ -117,9 +117,20 @@ void BeamItem::setInclinationProperty(const QString& inclination_type) addGroupProperty(P_INCLINATION_ANGLE, inclination_type); } +// Specular beam item +/* ------------------------------------------------------------------------- */ + +const QString SpecularBeamItem::P_FOOPTPRINT = QString("Footprint"); + +const QString footprint_group_label("Type"); + SpecularBeamItem::SpecularBeamItem() : BeamItem(Constants::SpecularBeamType) { setInclinationProperty(Constants::SpecularBeamInclinationType); + + auto item = addGroupProperty(P_FOOPTPRINT, Constants::FootprintGroup); + item->setDisplayName(footprint_group_label); + item->setToolTip("Footprint type"); } SpecularBeamItem::~SpecularBeamItem() = default; @@ -139,6 +150,9 @@ void SpecularBeamItem::setInclinationAngle(double value) BeamItem::setInclinationAngle(value); } +// GISAS beam item +/* ------------------------------------------------------------------------- */ + GISASBeamItem::GISASBeamItem() : BeamItem(Constants::GISASBeamType) { setInclinationProperty(Constants::BeamInclinationAngleType); diff --git a/GUI/coregui/Models/BeamItems.h b/GUI/coregui/Models/BeamItems.h index 5bc2f6a6956068a46506fee4e3feae78af1b1abd..6b8e8ee791c03c08e171f2a798826dada94828e0 100644 --- a/GUI/coregui/Models/BeamItems.h +++ b/GUI/coregui/Models/BeamItems.h @@ -53,6 +53,8 @@ protected: class BA_CORE_API_ SpecularBeamItem : public BeamItem { public: + static const QString P_FOOPTPRINT; + SpecularBeamItem(); virtual ~SpecularBeamItem(); diff --git a/GUI/coregui/Models/FootprintItems.cpp b/GUI/coregui/Models/FootprintItems.cpp index 6f8bd51c45dec5c025489177a5b87b56a7a233d6..37041b0724be9f40e3e47ac092982cd23bdd658c 100644 --- a/GUI/coregui/Models/FootprintItems.cpp +++ b/GUI/coregui/Models/FootprintItems.cpp @@ -19,8 +19,9 @@ #include "item_constants.h" namespace { +const QString footprint_value_name = "Width ratio"; const QString footprint_value_tooltip = - "Beam to sample width ratio"; + "The ratio of beam and sample full widths"; } // Base class @@ -49,8 +50,7 @@ std::unique_ptr<IFootprintFactor> FootprintNoneItem::createFootprint() const // Gaussian footprint /* ------------------------------------------------ */ -const QString FootprintGaussianItem::P_VALUE - = QString::fromStdString(BornAgain::BeamToSampleWidthRatio); +const QString FootprintGaussianItem::P_VALUE = footprint_value_name; FootprintGaussianItem::FootprintGaussianItem() : FootprintItem(Constants::FootprintGaussianType) @@ -69,8 +69,7 @@ std::unique_ptr<IFootprintFactor> FootprintGaussianItem::createFootprint() const // Square footprint /* ------------------------------------------------ */ -const QString FootprintSquareItem::P_VALUE - = QString::fromStdString(BornAgain::BeamToSampleWidthRatio); +const QString FootprintSquareItem::P_VALUE = footprint_value_name; FootprintSquareItem::FootprintSquareItem() : FootprintItem(Constants::FootprintSquareType) diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp index ecd3ec01eeb5f033f5ac1e7aa585710068207f0d..17019597ef2d03a12e4ec2efe6cedb158db5c9ce 100644 --- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp +++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.cpp @@ -28,6 +28,7 @@ namespace { const QString wavelength_title("Wavelength [nm]"); const QString inclination_title("Inclination angles [deg]"); +const QString footprint_title("Footprint correction"); const QString polarization_title("Polarization (Bloch vector)"); } @@ -37,12 +38,14 @@ SpecularBeamEditor::SpecularBeamEditor(ColumnResizer* columnResizer, QWidget* pa , m_intensityEditor(new ComponentEditor(ComponentEditor::PlainWidget)) , m_wavelengthEditor(new ComponentEditor(ComponentEditor::InfoWidget, wavelength_title)) , m_inclinationEditor(new ComponentEditor(ComponentEditor::InfoWidget, inclination_title)) + , m_footprint_editor(new ComponentEditor(ComponentEditor::GroupWidget, footprint_title)) , m_gridLayout(new QGridLayout) { m_gridLayout->addWidget(m_intensityEditor, 0, 0); m_gridLayout->addWidget(m_wavelengthEditor, 1, 0); m_gridLayout->addWidget(m_inclinationEditor, 1, 1); m_gridLayout->addWidget(LayoutUtils::placeHolder(), 1, 2); + m_gridLayout->addWidget(m_footprint_editor, 2, 0); auto mainLayout = new QVBoxLayout; mainLayout->addLayout(m_gridLayout); @@ -74,6 +77,8 @@ void SpecularBeamEditor::subscribeToItem() inclinationItem->getItem(SpecularBeamInclinationItem::P_ALPHA_AXIS)); m_inclinationEditor->addItem( inclinationItem->getItem(SpecularBeamInclinationItem::P_DISTRIBUTION)); + + m_footprint_editor->setItem(beam_item->getItem(SpecularBeamItem::P_FOOPTPRINT)); } void SpecularBeamEditor::unsubscribeFromItem() @@ -81,6 +86,7 @@ void SpecularBeamEditor::unsubscribeFromItem() m_intensityEditor->clearEditor(); m_wavelengthEditor->clearEditor(); m_inclinationEditor->clearEditor(); + m_footprint_editor->clearEditor(); } SpecularInstrumentItem* SpecularBeamEditor::instrumentItem() diff --git a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h index d6f23b75a864314405ed062876ee8ab959aec2e5..df8a3c33f22b6f12f5eaac2d96505851a52c672f 100644 --- a/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h +++ b/GUI/coregui/Views/InstrumentWidgets/SpecularBeamEditor.h @@ -45,6 +45,7 @@ private: ComponentEditor* m_intensityEditor; ComponentEditor* m_wavelengthEditor; ComponentEditor* m_inclinationEditor; + ComponentEditor* m_footprint_editor; QGridLayout* m_gridLayout; };