From 921def60cac7867ae22dba4ad8afb7d6c3e2708d Mon Sep 17 00:00:00 2001
From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de>
Date: Wed, 30 Nov 2022 15:08:42 +0100
Subject: [PATCH] FormFactorItems: return non-const list of descriptors

---
 GUI/Model/Model/ParameterTreeUtils.cpp     |  4 +-
 GUI/Model/Sample/FormFactorItems.h         | 61 ++++++++++------------
 GUI/View/SampleDesigner/LayerEditorUtils.h |  2 +-
 3 files changed, 32 insertions(+), 35 deletions(-)

diff --git a/GUI/Model/Model/ParameterTreeUtils.cpp b/GUI/Model/Model/ParameterTreeUtils.cpp
index 96d528040b1..2a11adfb8ff 100644
--- a/GUI/Model/Model/ParameterTreeUtils.cpp
+++ b/GUI/Model/Model/ParameterTreeUtils.cpp
@@ -256,7 +256,7 @@ ParameterLabelItem* ParameterTreeBuilder::addParticle(ParameterLabelItem* parent
     addRotation(label, p);
 
     if (const auto* particle = dynamic_cast<const ParticleItem*>(p)) {
-        const auto* formFactor = particle->formfactor();
+        auto* formFactor = particle->formfactor();
         auto* ffLabel = addLabel<FormFactorItemCatalog>(label, "Formfactor", formFactor);
         for (const auto& d : formFactor->geometryValues())
             addParameterItem(ffLabel, d);
@@ -273,7 +273,7 @@ ParameterLabelItem* ParameterTreeBuilder::addParticle(ParameterLabelItem* parent
         addParameterItem(label, meso->vectorB());
         addParameterItem(label, meso->vectorC());
 
-        const auto* outerShape = meso->outerShape().currentItem();
+        auto* outerShape = meso->outerShape().currentItem();
         auto* ffLabel = addLabel<FormFactorItemCatalog>(label, "Outer shape", outerShape);
         for (const auto& d : outerShape->geometryValues())
             addParameterItem(ffLabel, d);
diff --git a/GUI/Model/Sample/FormFactorItems.h b/GUI/Model/Sample/FormFactorItems.h
index efec54fd255..5016e76cee5 100644
--- a/GUI/Model/Sample/FormFactorItems.h
+++ b/GUI/Model/Sample/FormFactorItems.h
@@ -38,7 +38,7 @@ public:
 
 public:
     virtual std::unique_ptr<IFormFactor> createFormFactor() const = 0;
-    virtual DoubleDescriptors geometryValues() const = 0;
+    virtual DoubleDescriptors geometryValues() = 0;
     virtual void serialize(Streamer& s) = 0;
 };
 
@@ -52,10 +52,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(alpha, Alpha)
 
-    DoubleDescriptors geometryValues() const override
-    {
-        return {m_length, m_width, m_height, m_alpha};
-    }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height, m_alpha}; }
     void serialize(Streamer& s) override;
 };
 
@@ -68,7 +65,7 @@ public:
     FF_PROPERTY(width, Width)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_width, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -81,7 +78,7 @@ public:
     FF_PROPERTY(width, Width)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_width, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -94,7 +91,7 @@ public:
     FF_PROPERTY(width, Width)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_width, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -107,7 +104,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(alpha, Alpha)
 
-    DoubleDescriptors geometryValues() const override { return {m_radius, m_height, m_alpha}; }
+    DoubleDescriptors geometryValues() override { return {m_radius, m_height, m_alpha}; }
     void serialize(Streamer& s) override;
 };
 
@@ -120,7 +117,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(alpha, Alpha)
 
-    DoubleDescriptors geometryValues() const override { return {m_baseEdge, m_height, m_alpha}; }
+    DoubleDescriptors geometryValues() override { return {m_baseEdge, m_height, m_alpha}; }
     void serialize(Streamer& s) override;
 };
 
@@ -134,7 +131,7 @@ public:
     FF_PROPERTY(heightRatio, HeightRatio)
     FF_PROPERTY(alpha, Alpha)
 
-    DoubleDescriptors geometryValues() const override
+    DoubleDescriptors geometryValues() override
     {
         return {m_length, m_height, m_heightRatio, m_alpha};
     }
@@ -149,7 +146,7 @@ public:
     FF_PROPERTY(radius, Radius)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_radius, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_radius, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -162,7 +159,7 @@ public:
     FF_PROPERTY(radiusY, RadiusY)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_radiusX, m_radiusY, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_radiusX, m_radiusY, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -173,7 +170,7 @@ public:
 
     FF_PROPERTY(radius, Radius)
 
-    DoubleDescriptors geometryValues() const override { return {m_radius}; }
+    DoubleDescriptors geometryValues() override { return {m_radius}; }
     void serialize(Streamer& s) override;
 };
 
@@ -185,7 +182,7 @@ public:
     FF_PROPERTY(radius, Radius)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_radius, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_radius, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -198,7 +195,7 @@ public:
     FF_PROPERTY(radiusY, RadiusY)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_radiusX, m_radiusY, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_radiusX, m_radiusY, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -210,7 +207,7 @@ public:
     FF_PROPERTY(baseEdge, BaseEdge)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_baseEdge, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_baseEdge, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -222,7 +219,7 @@ public:
     FF_PROPERTY(baseEdge, BaseEdge)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_baseEdge, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_baseEdge, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -235,7 +232,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(alpha, Alpha)
 
-    DoubleDescriptors geometryValues() const override { return {m_baseEdge, m_height, m_alpha}; }
+    DoubleDescriptors geometryValues() override { return {m_baseEdge, m_height, m_alpha}; }
     void serialize(Streamer& s) override;
 };
 
@@ -248,7 +245,7 @@ public:
     FF_PROPERTY(width, Width)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_width, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -261,7 +258,7 @@ public:
     FF_PROPERTY(width, Width)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_width, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -274,7 +271,7 @@ public:
     FF_PROPERTY(width, Width)
     FF_PROPERTY(height, Height)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_width, m_height}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_width, m_height}; }
     void serialize(Streamer& s) override;
 };
 
@@ -288,7 +285,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(asymmetry, Asymmetry)
 
-    DoubleDescriptors geometryValues() const override
+    DoubleDescriptors geometryValues() override
     {
         return {m_length, m_width, m_height, m_asymmetry};
     }
@@ -305,7 +302,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(asymmetry, Asymmetry)
 
-    DoubleDescriptors geometryValues() const override
+    DoubleDescriptors geometryValues() override
     {
         return {m_length, m_width, m_height, m_asymmetry};
     }
@@ -322,7 +319,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(asymmetry, Asymmetry)
 
-    DoubleDescriptors geometryValues() const override
+    DoubleDescriptors geometryValues() override
     {
         return {m_length, m_width, m_height, m_asymmetry};
     }
@@ -338,7 +335,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(alpha, Alpha)
 
-    DoubleDescriptors geometryValues() const override { return {m_baseEdge, m_height, m_alpha}; }
+    DoubleDescriptors geometryValues() override { return {m_baseEdge, m_height, m_alpha}; }
     void serialize(Streamer& s) override;
 };
 
@@ -350,7 +347,7 @@ public:
     FF_PROPERTY(length, Length)
     FF_PROPERTY(removedLength, RemovedLength)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_removedLength}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_removedLength}; }
     void serialize(Streamer& s) override;
 };
 
@@ -363,7 +360,7 @@ public:
     FF_PROPERTY(height, Height)
     FF_PROPERTY(removedTop, RemovedTop)
 
-    DoubleDescriptors geometryValues() const override { return {m_radius, m_height, m_removedTop}; }
+    DoubleDescriptors geometryValues() override { return {m_radius, m_height, m_removedTop}; }
     void serialize(Streamer& s) override;
 };
 
@@ -377,7 +374,7 @@ public:
     FF_PROPERTY(heightFlattening, HeightFlattening)
     FF_PROPERTY(removedTop, RemovedTop)
 
-    DoubleDescriptors geometryValues() const override
+    DoubleDescriptors geometryValues() override
     {
         return {m_radius, m_height, m_heightFlattening, m_removedTop};
     }
@@ -392,7 +389,7 @@ public:
     FF_PROPERTY(length, Length)
     FF_PROPERTY(removedLength, RemovedLength)
 
-    DoubleDescriptors geometryValues() const override { return {m_length, m_removedLength}; }
+    DoubleDescriptors geometryValues() override { return {m_length, m_removedLength}; }
     void serialize(Streamer& s) override;
 };
 
@@ -406,7 +403,7 @@ public:
     FF_PROPERTY(sliceBottom, SliceBottom)
     FF_PROPERTY(sliceTop, SliceTop)
 
-    DoubleDescriptors geometryValues() const override
+    DoubleDescriptors geometryValues() override
     {
         return {m_radius, m_length, m_sliceBottom, m_sliceTop};
     }
@@ -419,7 +416,7 @@ class PlatonicItem : public FormFactorItem {
 public:
     FF_PROPERTY(edge, Edge)
 
-    DoubleDescriptors geometryValues() const override { return {m_edge}; }
+    DoubleDescriptors geometryValues() override { return {m_edge}; }
     void serialize(Streamer& s) override;
 };
 
diff --git a/GUI/View/SampleDesigner/LayerEditorUtils.h b/GUI/View/SampleDesigner/LayerEditorUtils.h
index 8904fd3461c..67b16e8a239 100644
--- a/GUI/View/SampleDesigner/LayerEditorUtils.h
+++ b/GUI/View/SampleDesigner/LayerEditorUtils.h
@@ -15,9 +15,9 @@
 #ifndef BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYEREDITORUTILS_H
 #define BORNAGAIN_GUI_VIEW_SAMPLEDESIGNER_LAYEREDITORUTILS_H
 
-#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include "GUI/Model/CatSample/FormFactorItemCatalog.h"
 #include "GUI/Model/CatSample/ItemWithParticlesCatalog.h"
+#include "GUI/Model/Descriptor/DoubleProperty.h"
 #include <QColor>
 #include <QList>
 #include <functional>
-- 
GitLab