From d9d046995aa81c404999954e4b3eb18acc631f77 Mon Sep 17 00:00:00 2001
From: Tobias Knopff <t.knopff@fz-juelich.de>
Date: Fri, 9 Jul 2021 15:40:56 +0200
Subject: [PATCH] Make GroupItem::T_ITEMS private

---
 GUI/Models/BeamDistributionItem.cpp          |  4 ++--
 GUI/Models/GroupItem.cpp                     | 10 ++++++++++
 GUI/Models/GroupItem.h                       |  7 ++++++-
 GUI/Models/InterferenceFunctionItems.cpp     |  2 +-
 GUI/Views/InfoWidgets/DistributionEditor.cpp |  2 +-
 5 files changed, 20 insertions(+), 5 deletions(-)

diff --git a/GUI/Models/BeamDistributionItem.cpp b/GUI/Models/BeamDistributionItem.cpp
index 3d26dde3d72..28384ff373d 100644
--- a/GUI/Models/BeamDistributionItem.cpp
+++ b/GUI/Models/BeamDistributionItem.cpp
@@ -61,7 +61,7 @@ void BeamDistributionItem::initDistributionItem(bool show_mean)
     auto groupItem = item<GroupItem>(P_DISTRIBUTION);
 
     DistributionNoneItem* distributionNone = nullptr;
-    for (auto item : groupItem->getItems(GroupItem::T_ITEMS)) {
+    for (auto item : groupItem->groupItems()) {
         if (item->modelType() == DistributionNoneItem::M_TYPE) {
             distributionNone = dynamic_cast<DistributionNoneItem*>(item);
             break;
@@ -74,7 +74,7 @@ void BeamDistributionItem::initDistributionItem(bool show_mean)
     const RealLimits limits = distributionNone->meanItem()->limits();
     const QString editor_type = distributionNone->meanItem()->editorType();
 
-    for (auto item : groupItem->getItems(GroupItem::T_ITEMS)) {
+    for (auto item : groupItem->groupItems()) {
         DistributionItem* distrItem = dynamic_cast<DistributionItem*>(item);
         distrItem->showMean(show_mean);
 
diff --git a/GUI/Models/GroupItem.cpp b/GUI/Models/GroupItem.cpp
index 0a839ca8cd7..a500ce1ad56 100644
--- a/GUI/Models/GroupItem.cpp
+++ b/GUI/Models/GroupItem.cpp
@@ -61,6 +61,16 @@ SessionItem* GroupItem::getItemOfType(const QString& type)
     return m_controller->getItemOfType(type);
 }
 
+QVector<SessionItem*> GroupItem::groupItems() const
+{
+    return getItems(T_ITEMS);
+}
+
+bool GroupItem::isItemsTagName(const QString& name)
+{
+    return name == T_ITEMS;
+}
+
 void GroupItem::onValueChange()
 {
     if (!value().canConvert<ComboProperty>())
diff --git a/GUI/Models/GroupItem.h b/GUI/Models/GroupItem.h
index e94fa4788b7..69c87216c69 100644
--- a/GUI/Models/GroupItem.h
+++ b/GUI/Models/GroupItem.h
@@ -24,10 +24,12 @@ class GroupInfo;
 class GroupItemController;
 
 class BA_CORE_API_ GroupItem : public SessionItem {
+private:
+    static const QString T_ITEMS;
+
 public:
     static const QString M_TYPE;
 
-    static const QString T_ITEMS;
     GroupItem();
     ~GroupItem();
 
@@ -42,6 +44,9 @@ public:
 
     template <typename T> T* itemOfType() const;
 
+    QVector<SessionItem*> groupItems() const;
+    static bool isItemsTagName(const QString& name);
+
 private:
     void onValueChange();
     void updateComboValue();
diff --git a/GUI/Models/InterferenceFunctionItems.cpp b/GUI/Models/InterferenceFunctionItems.cpp
index a8e006a683f..d5123fd47f7 100644
--- a/GUI/Models/InterferenceFunctionItems.cpp
+++ b/GUI/Models/InterferenceFunctionItems.cpp
@@ -206,7 +206,7 @@ InterferenceFunction2DParaCrystalItem::InterferenceFunction2DParaCrystalItem()
         ->setToolTip("Probability distribution in second lattice direction");
 
     mapper()->setOnChildPropertyChange([this](SessionItem* item, const QString& property) {
-        if (item->hasModelType<GroupItem>() && property == GroupItem::T_ITEMS
+        if (item->hasModelType<GroupItem>() && GroupItem::isItemsTagName(property)
             && isTag(P_PDF1) && isTag(P_PDF2))
             update_distribution_displaynames();
     });
diff --git a/GUI/Views/InfoWidgets/DistributionEditor.cpp b/GUI/Views/InfoWidgets/DistributionEditor.cpp
index 83d7643dd12..18f5f3ac340 100644
--- a/GUI/Views/InfoWidgets/DistributionEditor.cpp
+++ b/GUI/Views/InfoWidgets/DistributionEditor.cpp
@@ -62,7 +62,7 @@ void DistributionEditor::subscribeToItem()
 
 void DistributionEditor::onPropertyChanged(const QString& property_name)
 {
-    if (property_name == GroupItem::T_ITEMS)
+    if (GroupItem::isItemsTagName(property_name))
         m_plotwidget->setItem(distributionItem());
 }
 
-- 
GitLab