From e27f43cbecc0b3b5ced78847cfc0b7a6b6bbccec Mon Sep 17 00:00:00 2001 From: Matthias Puchner <github@mpuchner.de> Date: Thu, 2 Dec 2021 08:10:21 +0100 Subject: [PATCH] do not expose SessionItem as linked item --- GUI/Model/Fit/FitParameterHelper.cpp | 4 ++-- GUI/Model/Fit/ParameterTreeItems.cpp | 12 +++++++++++- GUI/Model/Fit/ParameterTreeItems.h | 5 ++++- GUI/View/Fit/ParameterTuningDelegate.cpp | 4 ++-- 4 files changed, 19 insertions(+), 6 deletions(-) diff --git a/GUI/Model/Fit/FitParameterHelper.cpp b/GUI/Model/Fit/FitParameterHelper.cpp index 1331f795662..bf4f96e5ae7 100644 --- a/GUI/Model/Fit/FitParameterHelper.cpp +++ b/GUI/Model/Fit/FitParameterHelper.cpp @@ -13,8 +13,8 @@ // ************************************************************************************************ #include "GUI/Model/Fit/FitParameterHelper.h" -#include "GUI/Model/Fit/FitParameterItem.h" #include "GUI/Model/Fit/FitParameterContainerItem.h" +#include "GUI/Model/Fit/FitParameterItem.h" #include "GUI/Model/Fit/FitParameterLinkItem.h" #include "GUI/Model/Fit/ParameterTreeItems.h" #include "GUI/Model/Job/JobItem.h" @@ -39,7 +39,7 @@ void FitParameterHelper::createFitParameter(FitParameterContainerItem* container fitPar->setStartValue(parameterItem->value().toDouble()); link->setLink(getParameterItemPath(parameterItem)); - fitPar->initMinMaxValues(parameterItem->linkedItem()->limits()); + fitPar->initMinMaxValues(parameterItem->limitsOfLink()); } //! Removes link to given parameterItem from fit parameters diff --git a/GUI/Model/Fit/ParameterTreeItems.cpp b/GUI/Model/Fit/ParameterTreeItems.cpp index 98dd051f848..f5e218f8a73 100644 --- a/GUI/Model/Fit/ParameterTreeItems.cpp +++ b/GUI/Model/Fit/ParameterTreeItems.cpp @@ -56,7 +56,7 @@ void ParameterItem::propagateValueToLink(double newValue) //! Returns corresponding linked item in MultiLayerItem/InstrumentItem -SessionItem* ParameterItem::linkedItem() +SessionItem* ParameterItem::linkedItem() const { const SessionItem* jobItem = GUI::Model::Path::ancestor(this, JobItem::M_TYPE); ASSERT(jobItem); @@ -69,6 +69,16 @@ void ParameterItem::setLink(const QString& link) m_link = link; } +RealLimits ParameterItem::limitsOfLink() const +{ + return linkedItem()->limits(); +} + +int ParameterItem::decimalsOfLink() const +{ + return linkedItem()->decimals(); +} + QString ParameterItem::link() const { return m_link; diff --git a/GUI/Model/Fit/ParameterTreeItems.h b/GUI/Model/Fit/ParameterTreeItems.h index 78f8bf46a23..54eba628651 100644 --- a/GUI/Model/Fit/ParameterTreeItems.h +++ b/GUI/Model/Fit/ParameterTreeItems.h @@ -39,11 +39,14 @@ public: ParameterItem(); void propagateValueToLink(double newValue); - SessionItem* linkedItem(); void setLink(const QString& link); QString link() const; + RealLimits limitsOfLink() const; + int decimalsOfLink() const; + private: + SessionItem* linkedItem() const; QString m_link; //!< Link to original PropertyItem }; diff --git a/GUI/View/Fit/ParameterTuningDelegate.cpp b/GUI/View/Fit/ParameterTuningDelegate.cpp index cc3d3758fe5..16521fca7fe 100644 --- a/GUI/View/Fit/ParameterTuningDelegate.cpp +++ b/GUI/View/Fit/ParameterTuningDelegate.cpp @@ -147,7 +147,7 @@ QWidget* ParameterTuningDelegate::createEditor(QWidget* parent, const QStyleOpti return nullptr; double value = data.toDouble(); - RealLimits limits = m_currentItem->linkedItem()->limits(); + RealLimits limits = m_currentItem->limitsOfLink(); m_tuning_info.setItemLimits(limits); m_tuning_info.value_to_slider(value); @@ -155,7 +155,7 @@ QWidget* ParameterTuningDelegate::createEditor(QWidget* parent, const QStyleOpti m_valueBox = new ScientificSpinBox(); m_valueBox->setKeyboardTracking(false); m_valueBox->setFixedWidth(105); - m_valueBox->setDecimals(m_currentItem->linkedItem()->decimals()); + m_valueBox->setDecimals(m_currentItem->decimalsOfLink()); m_valueBox->setSingleStep(m_tuning_info.step()); if (limits.hasLowerLimit()) { -- GitLab