From e3a591a0758e74344f8aca8ea7d909993835917c Mon Sep 17 00:00:00 2001
From: Matthias Puchner <github@mpuchner.de>
Date: Tue, 30 Nov 2021 17:03:36 +0100
Subject: [PATCH] rm unnecessary indirection

---
 GUI/Model/Fit/FitParameterContainerItem.cpp |  9 ++++++++-
 GUI/Model/Fit/FitParameterContainerItem.h   | 11 ++++++++++-
 GUI/Model/Fit/FitParameterHelper.cpp        | 11 +----------
 GUI/Model/Fit/FitParameterHelper.h          |  3 ---
 GUI/View/Fit/FitParameterWidget.cpp         | 14 +++++---------
 5 files changed, 24 insertions(+), 24 deletions(-)

diff --git a/GUI/Model/Fit/FitParameterContainerItem.cpp b/GUI/Model/Fit/FitParameterContainerItem.cpp
index e4673cdc8d3..8165853658a 100644
--- a/GUI/Model/Fit/FitParameterContainerItem.cpp
+++ b/GUI/Model/Fit/FitParameterContainerItem.cpp
@@ -15,6 +15,7 @@
 #include "GUI/Model/Fit/FitParameterContainerItem.h"
 #include "Base/Util/Assert.h"
 #include "Fit/Param/Parameters.h"
+#include "GUI/Model/Fit/FitParameterHelper.h"
 #include "GUI/Model/Fit/FitParameterItem.h"
 #include "GUI/Model/Fit/FitParameterLinkItem.h"
 #include "GUI/Model/Fit/ParameterTreeItems.h"
@@ -29,7 +30,7 @@ FitParameterContainerItem::FitParameterContainerItem() : SessionItem(M_TYPE)
 
 //! returns FitParameterItem for given link (path in model)
 
-FitParameterItem* FitParameterContainerItem::fitParameterItem(const QString& link)
+FitParameterItem* FitParameterContainerItem::fitParameterItem(const QString& link) const
 {
     for (FitParameterItem* item : items<FitParameterItem>(T_FIT_PARAMETERS)) {
         for (FitParameterLinkItem* linkItem : item->linkItems()) {
@@ -40,6 +41,12 @@ FitParameterItem* FitParameterContainerItem::fitParameterItem(const QString& lin
     return nullptr;
 }
 
+FitParameterItem*
+FitParameterContainerItem::fitParameterItem(const ParameterItem* parameterItem) const
+{
+    return fitParameterItem(FitParameterHelper::getParameterItemPath(parameterItem));
+}
+
 QVector<FitParameterItem*> FitParameterContainerItem::fitParameterItems()
 {
     return items<FitParameterItem>(T_FIT_PARAMETERS);
diff --git a/GUI/Model/Fit/FitParameterContainerItem.h b/GUI/Model/Fit/FitParameterContainerItem.h
index 7d059150169..0e9c6de103c 100644
--- a/GUI/Model/Fit/FitParameterContainerItem.h
+++ b/GUI/Model/Fit/FitParameterContainerItem.h
@@ -21,6 +21,7 @@ namespace mumufit {
 class Parameters;
 }
 class FitParameterItem;
+class ParameterItem;
 
 //! The FitParameterContainerItem class is a collection of all defined fit parameters in JobItem.
 
@@ -32,7 +33,15 @@ public:
     static constexpr auto M_TYPE{"FitParameterContainer"};
 
     FitParameterContainerItem();
-    FitParameterItem* fitParameterItem(const QString& link);
+
+    //! get the fit parameter item whose link matches the given link.
+    //!
+    //! The link is a ParameterItem's path
+    FitParameterItem* fitParameterItem(const QString& link) const;
+
+    //! get the fit parameter item which links the given parameterItem.
+    FitParameterItem* fitParameterItem(const ParameterItem* parameterItem) const;
+
     QVector<FitParameterItem*> fitParameterItems();
     bool isEmpty();
     void setValuesInParameterContainer(const QVector<double>& values,
diff --git a/GUI/Model/Fit/FitParameterHelper.cpp b/GUI/Model/Fit/FitParameterHelper.cpp
index bf4f96e5ae7..0a61bdcdff3 100644
--- a/GUI/Model/Fit/FitParameterHelper.cpp
+++ b/GUI/Model/Fit/FitParameterHelper.cpp
@@ -47,7 +47,7 @@ void FitParameterHelper::createFitParameter(FitParameterContainerItem* container
 void FitParameterHelper::removeFromFitParameters(FitParameterContainerItem* container,
                                                  ParameterItem* parameterItem)
 {
-    FitParameterItem* fitParItem = getFitParameterItem(container, parameterItem);
+    FitParameterItem* fitParItem = container->fitParameterItem(parameterItem);
 
     if (fitParItem) {
         for (auto* linkItem : fitParItem->linkItems()) {
@@ -77,15 +77,6 @@ void FitParameterHelper::addToFitParameter(FitParameterContainerItem* container,
     }
 }
 
-//! Returns fFitParameterItem corresponding to given ParameterItem
-
-FitParameterItem* FitParameterHelper::getFitParameterItem(FitParameterContainerItem* container,
-                                                          ParameterItem* parameterItem)
-{
-    ASSERT(container);
-    return container->fitParameterItem(getParameterItemPath(parameterItem));
-}
-
 //! Returns list of fit parameter display names
 
 QStringList FitParameterHelper::getFitParameterNames(FitParameterContainerItem* container)
diff --git a/GUI/Model/Fit/FitParameterHelper.h b/GUI/Model/Fit/FitParameterHelper.h
index 75f52c226f4..5d7d7e5547e 100644
--- a/GUI/Model/Fit/FitParameterHelper.h
+++ b/GUI/Model/Fit/FitParameterHelper.h
@@ -31,9 +31,6 @@ void removeFromFitParameters(FitParameterContainerItem* container, ParameterItem
 void addToFitParameter(FitParameterContainerItem* container, ParameterItem* parameterItem,
                        const QString& fitParName);
 
-FitParameterItem* getFitParameterItem(FitParameterContainerItem* container,
-                                      ParameterItem* parameterItem);
-
 QStringList getFitParameterNames(FitParameterContainerItem* container);
 QString getParameterItemPath(const ParameterItem* parameterItem);
 ParameterItem* getParameterItem(FitParameterContainerItem* container, const QString& link);
diff --git a/GUI/View/Fit/FitParameterWidget.cpp b/GUI/View/Fit/FitParameterWidget.cpp
index 8197ff867e0..c0b3b7d99e9 100644
--- a/GUI/View/Fit/FitParameterWidget.cpp
+++ b/GUI/View/Fit/FitParameterWidget.cpp
@@ -13,9 +13,9 @@
 //  ************************************************************************************************
 
 #include "GUI/View/Fit/FitParameterWidget.h"
+#include "GUI/Model/Fit/FitParameterContainerItem.h"
 #include "GUI/Model/Fit/FitParameterHelper.h"
 #include "GUI/Model/Fit/FitParameterItem.h"
-#include "GUI/Model/Fit/FitParameterContainerItem.h"
 #include "GUI/Model/Fit/FitParameterLinkItem.h"
 #include "GUI/Model/Fit/FitParameterProxyModel.h"
 #include "GUI/Model/Fit/FitSuiteItem.h"
@@ -151,10 +151,8 @@ void FitParameterWidget::onFitParametersSelectionChanged(const QItemSelection& s
 void FitParameterWidget::onCreateFitParAction()
 {
     for (auto* item : m_tuningWidget->getSelectedParameters()) {
-        if (!FitParameterHelper::getFitParameterItem(jobItem()->fitParameterContainerItem(),
-                                                     item)) {
+        if (!jobItem()->fitParameterContainerItem()->fitParameterItem(item))
             FitParameterHelper::createFitParameter(jobItem()->fitParameterContainerItem(), item);
-        }
     }
 }
 
@@ -164,10 +162,9 @@ void FitParameterWidget::onCreateFitParAction()
 void FitParameterWidget::onRemoveFromFitParAction()
 {
     for (auto* item : m_tuningWidget->getSelectedParameters()) {
-        if (FitParameterHelper::getFitParameterItem(jobItem()->fitParameterContainerItem(), item)) {
+        if (jobItem()->fitParameterContainerItem()->fitParameterItem(item))
             FitParameterHelper::removeFromFitParameters(jobItem()->fitParameterContainerItem(),
                                                         item);
-        }
     }
 }
 
@@ -313,8 +310,7 @@ bool FitParameterWidget::canCreateFitParameter()
 {
     QVector<ParameterItem*> selected = m_tuningWidget->getSelectedParameters();
     for (auto* item : selected) {
-        if (FitParameterHelper::getFitParameterItem(jobItem()->fitParameterContainerItem(), item)
-            == nullptr)
+        if (jobItem()->fitParameterContainerItem()->fitParameterItem(item) == nullptr)
             return true;
     }
     return false;
@@ -327,7 +323,7 @@ bool FitParameterWidget::canRemoveFromFitParameters()
 {
     QVector<ParameterItem*> selected = m_tuningWidget->getSelectedParameters();
     for (auto* item : selected) {
-        if (FitParameterHelper::getFitParameterItem(jobItem()->fitParameterContainerItem(), item))
+        if (jobItem()->fitParameterContainerItem()->fitParameterItem(item))
             return true;
     }
     return false;
-- 
GitLab