From f43affb1b08044f590242d76fe3ec1a342be5828 Mon Sep 17 00:00:00 2001
From: Matthias Puchner <github@mpuchner.de>
Date: Thu, 30 Sep 2021 17:15:31 +0200
Subject: [PATCH] use UIntDescriptor in LayerItem

---
 GUI/Models/LayerItem.cpp           | 15 +++------------
 GUI/Models/LayerItem.h             |  5 ++---
 GUI/Models/TransformFromDomain.cpp |  5 +++--
 GUI/Models/TransformToDomain.cpp   |  1 +
 4 files changed, 9 insertions(+), 17 deletions(-)

diff --git a/GUI/Models/LayerItem.cpp b/GUI/Models/LayerItem.cpp
index bcfed07b89a..c71b057e60d 100644
--- a/GUI/Models/LayerItem.cpp
+++ b/GUI/Models/LayerItem.cpp
@@ -19,6 +19,7 @@
 #include "GUI/Models/MaterialItemUtils.h"
 #include "GUI/Models/MultiLayerItem.h"
 #include "GUI/Models/ParticleLayoutItem.h"
+#include "GUI/Models/UIntDescriptor.h"
 
 namespace {
 const QString layer_nslices_tooltip = "Number of horizontal slices.\n"
@@ -85,21 +86,11 @@ SessionItem* LayerItem::roughnessItem() const
     return getItem(P_ROUGHNESS);
 }
 
-unsigned int LayerItem::numSlices() const
+UIntDescriptor LayerItem::numSlices() const
 {
-    return getItemValue(P_NSLICES).toUInt();
+    return UIntDescriptor(getItem(P_NSLICES), Unit::unitless);
 }
 
-void LayerItem::setNumSlices(unsigned int num_slices)
-{
-    // legacy representation as int
-    setItemValue(P_NSLICES, static_cast<int>(num_slices));
-}
-
-SessionItem* LayerItem::numSlicesItem() const
-{
-    return getItem(P_NSLICES);
-}
 
 QVector<ParticleLayoutItem*> LayerItem::layouts() const
 {
diff --git a/GUI/Models/LayerItem.h b/GUI/Models/LayerItem.h
index 8f706c51ecb..a52d171241b 100644
--- a/GUI/Models/LayerItem.h
+++ b/GUI/Models/LayerItem.h
@@ -20,6 +20,7 @@
 class LayerZeroRoughnessItem;
 class LayerBasicRoughnessItem;
 class ParticleLayoutItem;
+class UIntDescriptor;
 class DoubleDescriptor;
 
 class BA_CORE_API_ LayerItem : public ItemWithMaterial {
@@ -44,9 +45,7 @@ public:
     SessionItem* roughness() const;
     SessionItem* roughnessItem() const;
 
-    unsigned int numSlices() const;
-    void setNumSlices(unsigned int num_slices);
-    SessionItem* numSlicesItem() const;
+    UIntDescriptor numSlices() const;
 
     QVector<ParticleLayoutItem*> layouts() const;
     void removeLayout(ParticleLayoutItem* layout);
diff --git a/GUI/Models/TransformFromDomain.cpp b/GUI/Models/TransformFromDomain.cpp
index 81cfcaa011b..573de4e2d6e 100644
--- a/GUI/Models/TransformFromDomain.cpp
+++ b/GUI/Models/TransformFromDomain.cpp
@@ -49,6 +49,7 @@
 #include "GUI/Models/RectangularDetectorItem.h"
 #include "GUI/Models/ResolutionFunctionItems.h"
 #include "GUI/Models/SphericalDetectorItem.h"
+#include "GUI/Models/UIntDescriptor.h"
 #include "GUI/Models/VectorItem.h"
 #include "Param/Distrib/Distributions.h"
 #include "Param/Distrib/RangedDistributions.h"
@@ -392,9 +393,9 @@ void GUI::Transform::FromDomain::setRadialParaCrystalItem(
 void GUI::Transform::FromDomain::setLayerItem(LayerItem* layerItem, const Layer* layer,
                                               const LayerInterface* top_interface)
 {
-    layerItem->setThickness(layer->thickness());
+    layerItem->thickness().set(layer->thickness());
     layerItem->setRoughnessType<LayerZeroRoughnessItem>();
-    layerItem->setNumSlices(layer->numberOfSlices());
+    layerItem->numSlices().set(layer->numberOfSlices());
 
     if (top_interface) {
         const LayerRoughness* roughness = top_interface->getRoughness();
diff --git a/GUI/Models/TransformToDomain.cpp b/GUI/Models/TransformToDomain.cpp
index 69ec48b1143..2497dcefc84 100644
--- a/GUI/Models/TransformToDomain.cpp
+++ b/GUI/Models/TransformToDomain.cpp
@@ -35,6 +35,7 @@
 #include "GUI/Models/RotationItems.h"
 #include "GUI/Models/SimulationOptionsItem.h"
 #include "GUI/Models/TransformationItem.h"
+#include "GUI/Models/UIntDescriptor.h"
 #include "GUI/Models/VectorItem.h"
 #include "Param/Distrib/RangedDistributions.h"
 #include "Resample/Options/SimulationOptions.h"
-- 
GitLab