From 68847a5b318aad31e7c1167d0f19ccb1ac616f60 Mon Sep 17 00:00:00 2001
From: Tobias Knopff <t.knopff@fz-juelich.de>
Date: Tue, 4 May 2021 16:58:14 +0200
Subject: [PATCH] Make IntensityDataItem::P_GRADIENT private

---
 GUI/coregui/Models/IntensityDataItem.cpp      | 20 +++++++--
 GUI/coregui/Models/IntensityDataItem.h        |  8 +++-
 .../Views/IntensityDataWidgets/ColorMap.cpp   |  2 +-
 .../IntensityDataWidgets/ColorMapUtils.cpp    |  2 +-
 .../IntensityDataCanvas.cpp                   | 41 ++++++++-----------
 5 files changed, 43 insertions(+), 30 deletions(-)

diff --git a/GUI/coregui/Models/IntensityDataItem.cpp b/GUI/coregui/Models/IntensityDataItem.cpp
index a532a7cb5a5..0f2204c047a 100644
--- a/GUI/coregui/Models/IntensityDataItem.cpp
+++ b/GUI/coregui/Models/IntensityDataItem.cpp
@@ -160,10 +160,19 @@ double IntensityDataItem::getUpperZ() const
     return zAxisItem()->upperBound();
 }
 
-QString IntensityDataItem::getGradient() const
+QString IntensityDataItem::getGradientValue() const
 {
-    ComboProperty combo_property = getItemValue(P_GRADIENT).value<ComboProperty>();
-    return combo_property.getValue();
+    return getGradient().getValue();
+}
+
+ComboProperty IntensityDataItem::getGradient() const
+{
+    return getItemValue(P_GRADIENT).value<ComboProperty>();
+}
+
+void IntensityDataItem::setGradient(const ComboProperty& gradient)
+{
+    setItemValue(P_GRADIENT, gradient.variant());
 }
 
 bool IntensityDataItem::isLogz() const
@@ -251,6 +260,11 @@ bool IntensityDataItem::isInterpolatedPropertyName(const QString& name)
     return name == P_IS_INTERPOLATED;
 }
 
+bool IntensityDataItem::isGradientPropertyName(const QString& name)
+{
+    return name == P_GRADIENT;
+}
+
 void IntensityDataItem::setLowerX(double value)
 {
     xAxisItem()->setLowerBound(value);
diff --git a/GUI/coregui/Models/IntensityDataItem.h b/GUI/coregui/Models/IntensityDataItem.h
index d789c64a83b..7b07ba70cb5 100644
--- a/GUI/coregui/Models/IntensityDataItem.h
+++ b/GUI/coregui/Models/IntensityDataItem.h
@@ -27,9 +27,9 @@ private:
     static const QString P_PROJECTIONS;
     static const QString P_TITLE;
     static const QString P_IS_INTERPOLATED;
+    static const QString P_GRADIENT;
 
 public:
-    static const QString P_GRADIENT;
     static const QString P_XAXIS;
     static const QString P_YAXIS;
     static const QString P_ZAXIS;
@@ -65,7 +65,10 @@ public:
     double getLowerZ() const;
     double getUpperZ() const;
 
-    QString getGradient() const;
+    QString getGradientValue() const;
+    ComboProperty getGradient() const;
+    void setGradient(const ComboProperty& gradient);
+
     bool isLogz() const;
     bool isInterpolated() const;
     QString getXaxisTitle() const;
@@ -107,6 +110,7 @@ public:
     void reset(ImportDataInfo data) override;
 
     static bool isInterpolatedPropertyName(const QString& name);
+    static bool isGradientPropertyName(const QString& name);
                                             
 public slots:
     void setLowerX(double value);
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
index b288b85898a..bd89ef553b7 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMap.cpp
@@ -109,7 +109,7 @@ void ColorMap::onPropertyChanged(const QString& property_name)
     if (m_block_update)
         return;
 
-    if (property_name == IntensityDataItem::P_GRADIENT) {
+    if (IntensityDataItem::isGradientPropertyName(property_name)) {
         m_colorMap->setGradient(ColorMapUtils::itemGradient(intensityItem()));
         replot();
     } else if (IntensityDataItem::isInterpolatedPropertyName(property_name)) {
diff --git a/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp b/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp
index cf53d107511..39dbe6a02f6 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/ColorMapUtils.cpp
@@ -75,7 +75,7 @@ QCPColorGradient ColorMapUtils::getGradient(const QString& gradientName)
 
 QCPColorGradient ColorMapUtils::itemGradient(const IntensityDataItem* item)
 {
-    return getGradient(item->getGradient());
+    return getGradient(item->getGradientValue());
 }
 
 QCPRange ColorMapUtils::itemXrange(const IntensityDataItem* item)
diff --git a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
index fbdad3aae01..7dae8cf3ac2 100644
--- a/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
+++ b/GUI/coregui/Views/IntensityDataWidgets/IntensityDataCanvas.cpp
@@ -28,18 +28,12 @@
 
 namespace {
 
-QString group_name()
-{
-    return "IntensityDataCanvas/";
-}
-QString gradient_setting_name()
-{
-    return group_name() + IntensityDataItem::P_GRADIENT;
-}
-QString interpolation_setting_name()
-{
-    return group_name() + "Interpolation";
-}
+const QString SettingsGroup = "IntensityDataCanvas/";
+    
+const QString SettingsKeyGradient = SettingsGroup + "Gradient";
+
+const QString SettingsKeyInterpolation = SettingsGroup + "Interpolation";
+
 } // namespace
 
 IntensityDataCanvas::IntensityDataCanvas(QWidget* parent)
@@ -139,12 +133,14 @@ void IntensityDataCanvas::initActions()
 
 void IntensityDataCanvas::onPropertyChanged(const QString& name)
 {
-    if (name == IntensityDataItem::P_GRADIENT) {
+    if (IntensityDataItem::isGradientPropertyName(name)) {
         QSettings settings;
-        settings.setValue(gradient_setting_name(), intensityDataItem()->getGradient());
+        settings.setValue(SettingsKeyGradient,
+                          intensityDataItem()->getGradientValue());
     } else if (IntensityDataItem::isInterpolatedPropertyName(name)) {
         QSettings settings;
-        settings.setValue(interpolation_setting_name(), intensityDataItem()->isInterpolated());
+        settings.setValue(SettingsKeyInterpolation,
+                          intensityDataItem()->isInterpolated());
     }
 }
 
@@ -154,18 +150,17 @@ void IntensityDataCanvas::applyPersistentSettings()
 {
     QSettings settings;
 
-    if (settings.contains(gradient_setting_name())) {
-        ComboProperty combo =
-            intensityDataItem()->getItemValue(IntensityDataItem::P_GRADIENT).value<ComboProperty>();
-        QString persistentGradient = settings.value(gradient_setting_name()).toString();
+    if (settings.contains(SettingsKeyGradient)) {
+        ComboProperty combo = intensityDataItem()->getGradient();
+        QString persistentGradient = settings.value(SettingsKeyGradient).toString();
         if (combo.getValue() != persistentGradient) {
-            combo.setValue(settings.value(gradient_setting_name()).toString());
-            intensityDataItem()->setItemValue(IntensityDataItem::P_GRADIENT, combo.variant());
+            combo.setValue(persistentGradient);
+            intensityDataItem()->setGradient(combo);
         }
     }
 
-    if (settings.contains(interpolation_setting_name())) {
-        bool value = settings.value(interpolation_setting_name()).toBool();
+    if (settings.contains(SettingsKeyInterpolation)) {
+        bool value = settings.value(SettingsKeyInterpolation).toBool();
         intensityDataItem()->setInterpolated(value);
     }
 }
-- 
GitLab