diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp index 62ea8855df856a4414a5115997effa4df3fb9b90..e63840c6bc46aa0d061052d28518811bd10b03a3 100644 --- a/GUI/coregui/Models/InstrumentItems.cpp +++ b/GUI/coregui/Models/InstrumentItems.cpp @@ -28,6 +28,7 @@ namespace { const QString background_group_label = "Type"; +void addAxisGroupProperty(SessionItem* parent, const QString& tag); } const QString InstrumentItem::P_IDENTIFIER = "Identifier"; @@ -89,6 +90,19 @@ InstrumentItem::InstrumentItem(const QString& modelType) : SessionItem(modelType item->setToolTip("Background type"); } +const QString SpecularInstrumentItem::P_ALPHA_AXIS = "Alpha axis"; + +SpecularInstrumentItem::SpecularInstrumentItem() + : InstrumentItem(Constants::SpecularInstrumentType) +{ + addAxisGroupProperty(this, P_ALPHA_AXIS); +} + +std::unique_ptr<Instrument> SpecularInstrumentItem::createInstrument() const +{ + return InstrumentItem::createInstrument(); +} + const QString Instrument2DItem::P_DETECTOR = "Detector"; Instrument2DItem::Instrument2DItem(const QString& modelType) @@ -146,7 +160,14 @@ const QString OffSpecInstrumentItem::P_ALPHA_AXIS = "Alpha axis"; OffSpecInstrumentItem::OffSpecInstrumentItem() : Instrument2DItem(Constants::OffSpecInstrumentType) { - auto item = addGroupProperty(P_ALPHA_AXIS, Constants::BasicAxisType); + addAxisGroupProperty(this, P_ALPHA_AXIS); +} + +namespace +{ +void addAxisGroupProperty(SessionItem* parent, const QString& tag) +{ + auto item = parent->addGroupProperty(tag, Constants::BasicAxisType); item->setToolTip("Incoming alpha range [deg]"); item->getItem(BasicAxisItem::P_TITLE)->setVisible(false); item->getItem(BasicAxisItem::P_NBINS)->setToolTip("Number of points in scan"); @@ -156,4 +177,5 @@ OffSpecInstrumentItem::OffSpecInstrumentItem() item->setItemValue(BasicAxisItem::P_MIN, 0.0); item->setItemValue(BasicAxisItem::P_MAX, 10.0); } +} // namespace diff --git a/GUI/coregui/Models/InstrumentItems.h b/GUI/coregui/Models/InstrumentItems.h index c97956e3400e383d054b0005be0e787f51a629b0..74c2e0e314b469c743150fe64ea7d311c5855994 100644 --- a/GUI/coregui/Models/InstrumentItems.h +++ b/GUI/coregui/Models/InstrumentItems.h @@ -43,6 +43,16 @@ protected: explicit InstrumentItem(const QString& modelType); }; +class BA_CORE_API_ SpecularInstrumentItem : public InstrumentItem +{ +public: + static const QString P_ALPHA_AXIS; + + SpecularInstrumentItem(); + + std::unique_ptr<Instrument> createInstrument() const override; +}; + class BA_CORE_API_ Instrument2DItem : public InstrumentItem { public: diff --git a/GUI/coregui/Models/item_constants.h b/GUI/coregui/Models/item_constants.h index 8b42f220441fe10125220b88232c6ef6741692ff..6fc68656a053b1c99df102eebcd922a126bf3f5d 100644 --- a/GUI/coregui/Models/item_constants.h +++ b/GUI/coregui/Models/item_constants.h @@ -41,6 +41,7 @@ const ModelType InterferenceFunction1DLatticeType = "Interference1DLattice"; const ModelType InterferenceFunction2DLatticeType = "Interference2DLattice"; const ModelType GISASInstrumentType = "GISASInstrument"; const ModelType OffSpecInstrumentType = "OffSpecInstrument"; +const ModelType SpecularInstrumentType = "SpecularInstrument"; const ModelType BeamType = "Beam"; const ModelType FormFactorType = "FormFactor";