Skip to content
Snippets Groups Projects
Commit 64287694 authored by t.knopff's avatar t.knopff
Browse files

Make RectangularDetectorItem::P_ALIGNMENT private

parent da6f75ed
No related branches found
No related tags found
1 merge request!96Refactor model: detector items
...@@ -179,6 +179,26 @@ BasicAxisItem* RectangularDetectorItem::yAxisItem() ...@@ -179,6 +179,26 @@ BasicAxisItem* RectangularDetectorItem::yAxisItem()
static_cast<const RectangularDetectorItem*>(this)->yAxisItem()); static_cast<const RectangularDetectorItem*>(this)->yAxisItem());
} }
bool RectangularDetectorItem::isAlignmentPropertyName(const QString& name)
{
return name == P_ALIGNMENT;
}
SessionItem* RectangularDetectorItem::alignmentItem() const
{
return getItem(P_ALIGNMENT);
}
ComboProperty RectangularDetectorItem::alignment() const
{
return getItemValue(P_ALIGNMENT).value<ComboProperty>();
}
void RectangularDetectorItem::setAlignment(const ComboProperty& alignment)
{
setItemValue(P_ALIGNMENT, QVariant::fromValue<ComboProperty>(alignment));
}
std::unique_ptr<IDetector2D> RectangularDetectorItem::createDomainDetector() const std::unique_ptr<IDetector2D> RectangularDetectorItem::createDomainDetector() const
{ {
// basic axes parameters // basic axes parameters
......
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#define BORNAGAIN_GUI_MODELS_RECTANGULARDETECTORITEM_H #define BORNAGAIN_GUI_MODELS_RECTANGULARDETECTORITEM_H
#include "Base/Vector/Vectors3D.h" #include "Base/Vector/Vectors3D.h"
#include "GUI/Models/ComboProperty.h"
#include "GUI/Models/DetectorItems.h" #include "GUI/Models/DetectorItems.h"
class BasicAxisItem; class BasicAxisItem;
...@@ -24,9 +25,9 @@ class BA_CORE_API_ RectangularDetectorItem : public DetectorItem { ...@@ -24,9 +25,9 @@ class BA_CORE_API_ RectangularDetectorItem : public DetectorItem {
private: private:
static const QString P_X_AXIS; static const QString P_X_AXIS;
static const QString P_Y_AXIS; static const QString P_Y_AXIS;
static const QString P_ALIGNMENT;
public: public:
static const QString P_ALIGNMENT;
static const QString P_NORMAL; static const QString P_NORMAL;
static const QString P_DIRECTION; static const QString P_DIRECTION;
static const QString P_U0; static const QString P_U0;
...@@ -49,6 +50,11 @@ public: ...@@ -49,6 +50,11 @@ public:
const BasicAxisItem* yAxisItem() const; const BasicAxisItem* yAxisItem() const;
BasicAxisItem* yAxisItem(); BasicAxisItem* yAxisItem();
static bool isAlignmentPropertyName(const QString& name);
SessionItem* alignmentItem() const;
ComboProperty alignment() const;
void setAlignment(const ComboProperty& alignment);
private: private:
std::unique_ptr<IDetector2D> createDomainDetector() const override; std::unique_ptr<IDetector2D> createDomainDetector() const override;
void update_properties_appearance(); void update_properties_appearance();
......
...@@ -41,7 +41,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent) ...@@ -41,7 +41,7 @@ RectangularDetectorEditor::RectangularDetectorEditor(QWidget* parent)
void RectangularDetectorEditor::onPropertyChanged(const QString& propertyName) void RectangularDetectorEditor::onPropertyChanged(const QString& propertyName)
{ {
if (propertyName == RectangularDetectorItem::P_ALIGNMENT) if (RectangularDetectorItem::isAlignmentPropertyName(propertyName))
init_alignment_editors(); init_alignment_editors();
} }
...@@ -112,7 +112,7 @@ void RectangularDetectorEditor::init_editors() ...@@ -112,7 +112,7 @@ void RectangularDetectorEditor::init_editors()
m_resolutionFunctionEditor->setItem(resFuncGroup); m_resolutionFunctionEditor->setItem(resFuncGroup);
m_alignmentEditor->clearEditor(); m_alignmentEditor->clearEditor();
m_alignmentEditor->setItem(detectorItem()->getItem(RectangularDetectorItem::P_ALIGNMENT)); m_alignmentEditor->setItem(detectorItem()->alignmentItem());
init_alignment_editors(); init_alignment_editors();
} }
...@@ -128,8 +128,7 @@ void RectangularDetectorEditor::init_alignment_editors() ...@@ -128,8 +128,7 @@ void RectangularDetectorEditor::init_alignment_editors()
m_directionEditor->clearEditor(); m_directionEditor->clearEditor();
m_directionEditor->hide(); m_directionEditor->hide();
ComboProperty alignment = ComboProperty alignment = detectorItem()->alignment();
detectorItem()->getItemValue(RectangularDetectorItem::P_ALIGNMENT).value<ComboProperty>();
if (alignment.getValue() == "Generic") { if (alignment.getValue() == "Generic") {
m_positionsEditor->show(); m_positionsEditor->show();
......
...@@ -16,18 +16,15 @@ TEST_F(TestDetectorItems, test_detectorAlignment) ...@@ -16,18 +16,15 @@ TEST_F(TestDetectorItems, test_detectorAlignment)
InstrumentModel model; InstrumentModel model;
auto detector = model.insertItem<RectangularDetectorItem>(); auto detector = model.insertItem<RectangularDetectorItem>();
ComboProperty alignment = ComboProperty alignment = detector->alignment();
detector->getItemValue(RectangularDetectorItem::P_ALIGNMENT).value<ComboProperty>();
// generic has some more items visible // generic has some more items visible
alignment.setValue("Generic"); alignment.setValue("Generic");
detector->setItemValue(RectangularDetectorItem::P_ALIGNMENT, detector->setAlignment(alignment);
QVariant::fromValue<ComboProperty>(alignment));
EXPECT_TRUE(detector->getItem(RectangularDetectorItem::P_NORMAL)->isVisible()); EXPECT_TRUE(detector->getItem(RectangularDetectorItem::P_NORMAL)->isVisible());
// should be disabled if we switch // should be disabled if we switch
alignment.setValue("Perpendicular to reflected beam"); alignment.setValue("Perpendicular to reflected beam");
detector->setItemValue(RectangularDetectorItem::P_ALIGNMENT, detector->setAlignment(alignment);
QVariant::fromValue<ComboProperty>(alignment));
EXPECT_FALSE(detector->getItem(RectangularDetectorItem::P_NORMAL)->isVisible()); EXPECT_FALSE(detector->getItem(RectangularDetectorItem::P_NORMAL)->isVisible());
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment