From 142152dd9e9a0ab348a0c37731d57d618368994e Mon Sep 17 00:00:00 2001 From: Dmitry Yurov <d.yurov@fz-juelich.de> Date: Tue, 4 Dec 2018 13:15:04 +0100 Subject: [PATCH] Move native axis handling from instrument down to beam item Redmine: #2217 --- GUI/coregui/Models/BeamItems.cpp | 8 ++++++++ GUI/coregui/Models/BeamItems.h | 2 ++ GUI/coregui/Models/InstrumentItems.cpp | 14 ++++++-------- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/GUI/coregui/Models/BeamItems.cpp b/GUI/coregui/Models/BeamItems.cpp index 25a2b440c31..f57f466488c 100644 --- a/GUI/coregui/Models/BeamItems.cpp +++ b/GUI/coregui/Models/BeamItems.cpp @@ -192,6 +192,14 @@ void SpecularBeamItem::updateFileName(const QString& filename) item<SpecularBeamInclinationItem>(BeamItem::P_INCLINATION_ANGLE).updateFileName(filename); } +void SpecularBeamItem::updateToData(const IAxis& axis, QString units) +{ + auto axis_group = inclinationAxisGroup(); + axis_group->setCurrentType(Constants::PointwiseAxisType); + auto axis_item = static_cast<PointwiseAxisItem*>(axis_group->currentItem()); + axis_item->init(axis, units); +} + // GISAS beam item /* ------------------------------------------------------------------------- */ diff --git a/GUI/coregui/Models/BeamItems.h b/GUI/coregui/Models/BeamItems.h index a84f66ba1fd..73435a2e409 100644 --- a/GUI/coregui/Models/BeamItems.h +++ b/GUI/coregui/Models/BeamItems.h @@ -21,6 +21,7 @@ class BasicAxisItem; class Beam; class FootprintItem; class GroupItem; +class IAxis; class BA_CORE_API_ BeamItem : public SessionItem { @@ -70,6 +71,7 @@ public: FootprintItem* currentFootprintItem() const; void updateFileName(const QString& filename); + void updateToData(const IAxis& axis, QString units); }; class BA_CORE_API_ GISASBeamItem : public BeamItem diff --git a/GUI/coregui/Models/InstrumentItems.cpp b/GUI/coregui/Models/InstrumentItems.cpp index 7a7ba237627..ad79883a978 100644 --- a/GUI/coregui/Models/InstrumentItems.cpp +++ b/GUI/coregui/Models/InstrumentItems.cpp @@ -150,15 +150,13 @@ void SpecularInstrumentItem::updateToRealData(const RealDataItem* item) if (item->getItemValue(RealDataItem::P_NATIVE_UNITS).toString() == Constants::UnitsNbins) { beamItem()->inclinationAxisGroup()->setCurrentType(Constants::BasicAxisType); setShape(item->shape()); - } else { - QString units = item->getItemValue(RealDataItem::P_NATIVE_UNITS).toString(); - const auto& data = item->nativeData()->getOutputData()->getAxis(0); - - auto axis_group = beamItem()->inclinationAxisGroup(); - axis_group->setCurrentType(Constants::PointwiseAxisType); - auto axis = dynamic_cast<PointwiseAxisItem*>(axis_group->currentItem()); - axis->init(data, units); + return; } + + // the case of dimensional units in user data + QString units = item->getItemValue(RealDataItem::P_NATIVE_UNITS).toString(); + const auto& data = item->nativeData()->getOutputData()->getAxis(0); + beamItem()->updateToData(data, units); } bool SpecularInstrumentItem::alignedWith(const RealDataItem* item) const -- GitLab