From 85fcfea15990f8a5657a368bc44f74712528c4ca Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Wed, 18 May 2016 15:43:14 +0200 Subject: [PATCH] Selection in fit parameter tree is propagated to tuning widget --- GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp | 6 +++++- GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp | 8 ++++++++ GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h | 3 ++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp index 6c18c98f523..7d4a8370871 100644 --- a/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp +++ b/GUI/coregui/Views/FitWidgets/FitParameterWidget.cpp @@ -139,7 +139,12 @@ void FitParameterWidget::onFitParametersSelectionChanged(const QItemSelection &s return; foreach(QModelIndex index, selection.indexes()) { + m_tuningWidget->selectionModel()->clearSelection(); SessionItem *item = m_fitParameterModel->itemForIndex(index); + if(item->parent()->modelType() == Constants::FitParameterLinkType) { + QString link = item->parent()->getItemValue(FitParameterLinkItem::P_LINK).toString(); + m_tuningWidget->makeSelected(FitModelHelper::getParameterItem(m_jobItem->fitParameterContainerItem(), link)); + } qDebug() << "XXX index" << index << item->modelType(); } @@ -400,7 +405,6 @@ void FitParameterWidget::updateInfoLabel() { Q_ASSERT(m_jobItem); bool is_to_show_label = m_jobItem->fitParameterContainerItem()->isEmpty(); - qDebug() << "FitParameterWidget::updateInfoLabel()" << m_jobItem->fitParameterContainerItem()->getItems(FitParameterContainerItem::T_FIT_PARAMETERS).size() << is_to_show_label << m_treeView; m_infoLabel->setShown(is_to_show_label); } diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp index 2ee0e98a5e2..87a87861f1f 100644 --- a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp +++ b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.cpp @@ -201,6 +201,14 @@ void ParameterTuningWidget::restoreModelsOfCurrentJobItem() m_jobModel->getJobQueueData()->runJob(m_currentJobItem); } +void ParameterTuningWidget::makeSelected(ParameterItem *item) +{ + QModelIndex proxyIndex = m_parameterTuningModel->mapFromSource(item->index()); + if(proxyIndex.isValid()) { + selectionModel()->select(proxyIndex, QItemSelectionModel::Select); + } +} + void ParameterTuningWidget::resizeEvent(QResizeEvent *event) { Q_UNUSED(event); diff --git a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h index f1b9e010305..e7046052914 100644 --- a/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h +++ b/GUI/coregui/Views/JobWidgets/ParameterTuningWidget.h @@ -42,7 +42,7 @@ public: QItemSelectionModel* selectionModel(); - QVector<ParameterItem *> getSelectedParameters(); + QVector<ParameterItem *> getSelectedParameters(); signals: void itemContextMenuRequest(const QPoint &point); @@ -52,6 +52,7 @@ public slots: void onSliderValueChanged(double value); void onLockZValueChanged(bool value); void restoreModelsOfCurrentJobItem(); + void makeSelected(ParameterItem *item); protected: void resizeEvent(QResizeEvent *event); -- GitLab