From c9231ecd91ea8231a4418e3f27178fe0542c5a3e Mon Sep 17 00:00:00 2001
From: Tobias Knopff <t.knopff@fz-juelich.de>
Date: Mon, 31 May 2021 10:22:10 +0200
Subject: [PATCH] Make RectangularDetectorItem::P_NORMAL private

---
 GUI/Models/RectangularDetectorItem.cpp                 | 10 ++++++++++
 GUI/Models/RectangularDetectorItem.h                   |  5 ++++-
 GUI/Models/TransformFromDomain.cpp                     |  2 +-
 .../InstrumentWidgets/RectangularDetectorEditor.cpp    |  2 +-
 Tests/UnitTests/GUI/TestDetectorItems.cpp              |  4 ++--
 5 files changed, 18 insertions(+), 5 deletions(-)

diff --git a/GUI/Models/RectangularDetectorItem.cpp b/GUI/Models/RectangularDetectorItem.cpp
index bb94253aa49..11753e89799 100644
--- a/GUI/Models/RectangularDetectorItem.cpp
+++ b/GUI/Models/RectangularDetectorItem.cpp
@@ -199,6 +199,16 @@ void RectangularDetectorItem::setAlignment(const ComboProperty& alignment)
     setItemValue(P_ALIGNMENT, QVariant::fromValue<ComboProperty>(alignment));
 }
 
+SessionItem* RectangularDetectorItem::normalVectorItem() const
+{
+    return getItem(P_NORMAL);
+}
+
+void RectangularDetectorItem::setNormalVector(const kvector_t& normal)
+{
+    item<VectorItem>(P_NORMAL)->setVector(normal);
+}
+
 std::unique_ptr<IDetector2D> RectangularDetectorItem::createDomainDetector() const
 {
     // basic axes parameters
diff --git a/GUI/Models/RectangularDetectorItem.h b/GUI/Models/RectangularDetectorItem.h
index e53c779e305..9058958fcad 100644
--- a/GUI/Models/RectangularDetectorItem.h
+++ b/GUI/Models/RectangularDetectorItem.h
@@ -26,9 +26,9 @@ private:
     static const QString P_X_AXIS;
     static const QString P_Y_AXIS;
     static const QString P_ALIGNMENT;
+    static const QString P_NORMAL;
 
 public:
-    static const QString P_NORMAL;
     static const QString P_DIRECTION;
     static const QString P_U0;
     static const QString P_V0;
@@ -55,6 +55,9 @@ public:
     ComboProperty alignment() const;
     void setAlignment(const ComboProperty& alignment);
 
+    SessionItem* normalVectorItem() const;
+    void setNormalVector(const kvector_t& normal);
+
 private:
     std::unique_ptr<IDetector2D> createDomainDetector() const override;
     void update_properties_appearance();
diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp
index 813a8ce3d61..c02f6b22543 100644
--- a/GUI/Models/TransformFromDomain.cpp
+++ b/GUI/Models/TransformFromDomain.cpp
@@ -389,7 +389,7 @@ void TransformFromDomain::setRectangularDetector(RectangularDetectorItem* detect
         detector_item->setDetectorAlignment("Generic");
 
         kvector_t normal = detector.getNormalVector();
-        detector_item->item<VectorItem>(RectangularDetectorItem::P_NORMAL)->setVector(normal);
+        detector_item->setNormalVector(normal);
 
         kvector_t direction = detector.getDirectionVector();
         detector_item->item<VectorItem>(RectangularDetectorItem::P_DIRECTION)->setVector(direction);
diff --git a/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp b/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
index ecd4a895b49..a1e869021a6 100644
--- a/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
+++ b/GUI/Views/InstrumentWidgets/RectangularDetectorEditor.cpp
@@ -138,7 +138,7 @@ void RectangularDetectorEditor::init_alignment_editors()
         m_positionsEditor->addItem(detectorItem()->getItem(RectangularDetectorItem::P_U0));
         m_positionsEditor->addItem(detectorItem()->getItem(RectangularDetectorItem::P_V0));
 
-        auto normalVectorItem = detectorItem()->getItem(RectangularDetectorItem::P_NORMAL);
+        auto normalVectorItem = detectorItem()->normalVectorItem();
         m_normalEditor->setItem(normalVectorItem);
 
         auto directionVectorItem = detectorItem()->getItem(RectangularDetectorItem::P_DIRECTION);
diff --git a/Tests/UnitTests/GUI/TestDetectorItems.cpp b/Tests/UnitTests/GUI/TestDetectorItems.cpp
index c7837dd8ef0..587a763033f 100644
--- a/Tests/UnitTests/GUI/TestDetectorItems.cpp
+++ b/Tests/UnitTests/GUI/TestDetectorItems.cpp
@@ -20,12 +20,12 @@ TEST_F(TestDetectorItems, test_detectorAlignment)
     // generic has some more items visible
     alignment.setValue("Generic");
     detector->setAlignment(alignment);
-    EXPECT_TRUE(detector->getItem(RectangularDetectorItem::P_NORMAL)->isVisible());
+    EXPECT_TRUE(detector->normalVectorItem()->isVisible());
 
     // should be disabled if we switch
     alignment.setValue("Perpendicular to reflected beam");
     detector->setAlignment(alignment);
-    EXPECT_FALSE(detector->getItem(RectangularDetectorItem::P_NORMAL)->isVisible());
+    EXPECT_FALSE(detector->normalVectorItem()->isVisible());
 }
 
 TEST_F(TestDetectorItems, test_resolutionFunction)
-- 
GitLab