From 454612517bb472f0ad4d4db0fffb093732e7b622 Mon Sep 17 00:00:00 2001 From: Mikhail Svechnikov <m.svechnikov@fz-juelich.de> Date: Wed, 19 Oct 2022 17:14:28 +0200 Subject: [PATCH] before mv signals to container --- GUI/Model/Job/FitParameterContainerItem.cpp | 12 ++++----- GUI/Model/Job/FitParameterContainerItem.h | 5 ++-- GUI/Model/Model/FitParameterModel.cpp | 28 +++------------------ GUI/Model/Model/FitParameterModel.h | 3 +-- GUI/View/Fit/FitParameterWidget.cpp | 10 ++++++++ 5 files changed, 23 insertions(+), 35 deletions(-) diff --git a/GUI/Model/Job/FitParameterContainerItem.cpp b/GUI/Model/Job/FitParameterContainerItem.cpp index c89f76fca90..7f556ab2e69 100644 --- a/GUI/Model/Job/FitParameterContainerItem.cpp +++ b/GUI/Model/Job/FitParameterContainerItem.cpp @@ -39,14 +39,11 @@ void FitParameterContainerItem::createFitParameter(ParameterItem* parameterItem) fitPar->setStartValue(parameterItem->valueOfLink()); fitPar->initMinMaxValues(parameterItem->limitsOfLink()); fitPar->addLink(parameterItem->titleForFitItem(), parameterItem->link()); - - emit fitParamChanged(); } void FitParameterContainerItem::removeFitParameter(FitParameterItem* item) { model()->removeRow(item->index().row(), item->index().parent()); - emit fitParamChanged(); } void FitParameterContainerItem::addToFitParameter(ParameterItem* parameterItem, @@ -56,10 +53,14 @@ void FitParameterContainerItem::addToFitParameter(ParameterItem* parameterItem, for (FitParameterItem* fitPar : fitParameterItems()) { if (fitPar->displayName() == fitParName) { fitPar->addLink(parameterItem->titleForFitItem(), parameterItem->link()); - emit fitLinkChanged(); break; } - } + } +} + +void FitParameterContainerItem::removeFromFitParameter(const ParameterItem *parameterItem) +{ + removeLink(parameterItem); } //! Returns FitParameterItem for given link (path in model) @@ -96,7 +97,6 @@ void FitParameterContainerItem::removeLink(const ParameterItem* parameterItem) { if (FitParameterItem* fitParItem = fitParameterItem(parameterItem)) fitParItem->removeLink(parameterItem->link()); - emit fitLinkChanged(); } bool FitParameterContainerItem::isEmpty() diff --git a/GUI/Model/Job/FitParameterContainerItem.h b/GUI/Model/Job/FitParameterContainerItem.h index c732077444a..cefc7c6c1b8 100644 --- a/GUI/Model/Job/FitParameterContainerItem.h +++ b/GUI/Model/Job/FitParameterContainerItem.h @@ -46,6 +46,8 @@ public: //! If parameterItem is already linked with another fitParameter, it will be relinked void addToFitParameter(ParameterItem* parameterItem, const QString& fitParName); + void removeFromFitParameter(const ParameterItem* parameterItem); + //! get the fit parameter item whose link matches the given link. //! //! The link is a ParameterItem's path @@ -68,8 +70,7 @@ public: mumufit::Parameters createParameters() const; signals: - void fitLinkChanged(SessionItem* linkItem = nullptr); - void fitParamChanged(SessionItem* item = nullptr); + void fitItemChanged(); }; #endif // BORNAGAIN_GUI_MODEL_JOB_FITPARAMETERCONTAINERITEM_H diff --git a/GUI/Model/Model/FitParameterModel.cpp b/GUI/Model/Model/FitParameterModel.cpp index e477ab2b315..86456c0ffc6 100644 --- a/GUI/Model/Model/FitParameterModel.cpp +++ b/GUI/Model/Model/FitParameterModel.cpp @@ -307,29 +307,9 @@ QVariant FitParameterModel::headerData(int section, Qt::Orientation orientation, return QVariant(); } -void FitParameterModel::onFitParChanged(SessionItem* item) +void FitParameterModel::onFitItemChanged() { beginResetModel(); - qInfo() << "FitPar" << item; - if(item) { - QModelIndex itemIndex = indexOfItem(item); - qInfo() << itemIndex.isValid(); - if (itemIndex.isValid()) - emit dataChanged(itemIndex, itemIndex); - } - endResetModel(); -} - -void FitParameterModel::onFitLinkChanged(SessionItem *item) -{ - beginResetModel(); - qInfo() << "Link" << item; - if(item) { - QModelIndex itemIndex = indexOfItem(item); - qInfo() << itemIndex.isValid(); - if (itemIndex.isValid()) - emit dataChanged(itemIndex, itemIndex); - } endResetModel(); } @@ -391,10 +371,8 @@ void FitParameterModel::connectContainer() const if (!m_parameterContainer) return; - connect(m_parameterContainer, &FitParameterContainerItem::fitParamChanged, this, - &FitParameterModel::onFitParChanged); - connect(m_parameterContainer, &FitParameterContainerItem::fitLinkChanged, this, - &FitParameterModel::onFitLinkChanged); + connect(m_parameterContainer, &FitParameterContainerItem::fitItemChanged, this, + &FitParameterModel::onFitItemChanged); } void FitParameterModel::addColumn(FitParameterModel::EColumn id, const QString& name, diff --git a/GUI/Model/Model/FitParameterModel.h b/GUI/Model/Model/FitParameterModel.h index e8872f8d3cf..a7a6e92ec6a 100644 --- a/GUI/Model/Model/FitParameterModel.h +++ b/GUI/Model/Model/FitParameterModel.h @@ -59,8 +59,7 @@ public: bool isValidSourceItem(SessionItem* item) const; private slots: - void onFitParChanged(SessionItem *item); - void onFitLinkChanged(SessionItem *item); + void onFitItemChanged(); void onSourceDataChanged(const QModelIndex& topLeft, const QModelIndex& bottomRight, const QVector<int>& roles); void onSourceRowsRemoved(const QModelIndex& parent, int first, int last); diff --git a/GUI/View/Fit/FitParameterWidget.cpp b/GUI/View/Fit/FitParameterWidget.cpp index 65768dc8378..0b5e8569ec5 100644 --- a/GUI/View/Fit/FitParameterWidget.cpp +++ b/GUI/View/Fit/FitParameterWidget.cpp @@ -175,9 +175,11 @@ void FitParameterWidget::onFitParametersSelectionChanged(const QItemSelection& s void FitParameterWidget::onCreateFitParAction() { + qInfo() << "onCreateFitParAction"; for (auto* item : m_tuningWidget->getSelectedParameters()) if (!jobItem()->fitParameterContainerItem()->fitParameterItem(item)) jobItem()->fitParameterContainerItem()->createFitParameter(item); + emit jobItem()->fitParameterContainerItem()->fitItemChanged(); } //! All ParameterItem's selected in tuning widget will be removed from link section of @@ -185,14 +187,17 @@ void FitParameterWidget::onCreateFitParAction() void FitParameterWidget::onRemoveFromFitParAction() { + qInfo() << "onRemoveFromFitParAction"; for (auto* item : m_tuningWidget->getSelectedParameters()) jobItem()->fitParameterContainerItem()->removeLink(item); + emit jobItem()->fitParameterContainerItem()->fitItemChanged(); } //! All selected FitParameterItem's of FitParameterItemLink's will be removed void FitParameterWidget::onRemoveFitParAction() { + qInfo() << "onRemoveFitParAction"; FitParameterContainerItem* container = jobItem()->fitParameterContainerItem(); // retrieve both, selected FitParameterItem and FitParameterItemLink @@ -209,15 +214,20 @@ void FitParameterWidget::onRemoveFitParAction() for (auto* item : itemsToRemove) container->removeFitParameter(item); + + emit jobItem()->fitParameterContainerItem()->fitItemChanged(); } //! Add all selected parameters to fitParameter with given index void FitParameterWidget::onAddToFitParAction(int ipar) { + qInfo() << "onAddToFitParAction"; const QString fitParName = jobItem()->fitParameterContainerItem()->fitParameterNames().at(ipar); for (auto* item : m_tuningWidget->getSelectedParameters()) jobItem()->fitParameterContainerItem()->addToFitParameter(item, fitParName); + + emit jobItem()->fitParameterContainerItem()->fitItemChanged(); } void FitParameterWidget::onFitParameterModelChange() -- GitLab