diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp index b68ba6544601b214a8828dfba7f0ae7d8b57eed3..9e28a661ba5ed6c6040814e8d941f5bbca6771ce 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp +++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp @@ -48,7 +48,7 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent) // , m_simulatedDataItem(0) , m_relativeDiffItem(0) , m_resetViewAction(0) - , m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel", this)) + , m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel")) { QVBoxLayout *vlayout = new QVBoxLayout; vlayout->setMargin(0); @@ -75,23 +75,15 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent) m_resetViewAction->setToolTip("Reset View"); connect(m_resetViewAction, SIGNAL(triggered()), this, SLOT(onResetViewAction())); + m_relativeDiffItem = createRelativeDifferenceItem(); + m_relativeDiffPlot->setItem(m_relativeDiffItem); } FitComparisonWidget::~FitComparisonWidget() { -// if(m_simulatedDataItem) -// m_simulatedDataItem->mapper()->unsubscribe(this); - -// if(m_currentJobItem) -// m_currentJobItem->mapper()->unsubscribe(this); -} - -void FitComparisonWidget::setItem(SessionItem *item) -{ - SessionItemWidget::setItem(item); - qDebug() << "FitComparisonWidget::setItem(SessionItem *item)"; -// JobItem *jobItem = dynamic_cast<JobItem *>(item); -// setJobItem(jobItem); + // FIXME unclear corrupter memory on aplication exist (comment lines below to reproduce) + m_relativeDiffPlot->setItem(0); + delete m_tempIntensityDataModel; } QList<QAction *> FitComparisonWidget::actionList() @@ -99,49 +91,6 @@ QList<QAction *> FitComparisonWidget::actionList() return QList<QAction *>() << m_resetViewAction; } -//void FitComparisonWidget::setJobItem(JobItem *jobItem) -//{ -// if(!jobItem->isValidForFitting()) -// return; - -// processJobItemItem(jobItem); -// setSimulatedDataItem(jobItem->intensityDataItem()); - - -// m_relativeDiffItem = createRelativeDifferenceItem(); -// calculateRelativeDifference(); - -// m_realDataPlot->setItem(m_realDataItem); -// m_simulatedDataPlot->setItem(m_simulatedDataItem); -// m_relativeDiffPlot->setItem(m_relativeDiffItem); -// m_fitFlowWidget->setItem(jobItem->fitSuiteItem()); - -// m_statusLabel->reset(); -// m_statusLabel->addColorMap(m_realDataPlot); -// m_statusLabel->addColorMap(m_simulatedDataPlot); -// m_statusLabel->addColorMap(m_relativeDiffPlot); -//} - -//! When widget is visible, axes labels will be removed intensity data items to free more space. - -//void FitComparisonWidget::showEvent(QShowEvent *) -//{ -//// if(isVisible()) { -//// removeLabels(m_realDataItem); -//// removeLabels(m_simulatedDataItem); -//// } -//} - -//! When widget is about to be hidden, axes labels will be restored to not to upset other widgets. - -//void FitComparisonWidget::hideEvent(QHideEvent *) -//{ -//// if(isHidden()) { -//// restoreLabels(m_realDataItem); -//// restoreLabels(m_simulatedDataItem); -//// } -//} - void FitComparisonWidget::subscribeToItem() { if(!jobItem()->isValidForFitting()) @@ -164,22 +113,16 @@ void FitComparisonWidget::subscribeToItem() }, this); } - if(!m_relativeDiffItem) - m_relativeDiffItem = createRelativeDifferenceItem(); - calculateRelativeDifference(); m_realDataPlot->setItem(realDataItem()); m_simulatedDataPlot->setItem(simulatedDataItem()); - m_relativeDiffPlot->setItem(m_relativeDiffItem); m_fitFlowWidget->setItem(jobItem()->fitSuiteItem()); m_statusLabel->reset(); m_statusLabel->addColorMap(m_realDataPlot); m_statusLabel->addColorMap(m_simulatedDataPlot); m_statusLabel->addColorMap(m_relativeDiffPlot); - - } void FitComparisonWidget::unsubscribeFromItem() @@ -191,35 +134,6 @@ void FitComparisonWidget::unsubscribeFromItem() simulatedDataItem()->mapper()->unsubscribe(this); } -//void FitComparisonWidget::processJobItemItem(JobItem *jobItem) -//{ - -// if(jobItem == m_currentJobItem) -// return; - -// if(m_currentJobItem) -// m_currentJobItem->mapper()->unsubscribe(this); - -// m_currentJobItem = jobItem; -// if(!m_currentJobItem) return; - -// m_currentJobItem->mapper()->setOnPropertyChange( -// [this](const QString &name) -// { -// if(name == JobItem::P_STATUS) { -// if(m_currentJobItem->isCompleted()) -// onResetViewAction(); -// } -// }, this); - -// m_currentJobItem->mapper()->setOnItemDestroy( -// [this](SessionItem *) { -// m_currentJobItem = 0; -// }, this); - -// m_realDataItem = m_currentJobItem->realDataItem()->intensityDataItem(); -//} - void FitComparisonWidget::onResetViewAction() { if(auto item = realDataItem()) @@ -234,32 +148,6 @@ void FitComparisonWidget::onResetViewAction() } } -//! Sets tracking of simulated data item. - -//void FitComparisonWidget::setSimulatedDataItem(IntensityDataItem *simulatedDataItem) -//{ -// if(simulatedDataItem == m_simulatedDataItem) -// return; - -// if(m_simulatedDataItem) -// m_simulatedDataItem->mapper()->unsubscribe(this); - -// m_simulatedDataItem = simulatedDataItem; -// if(!m_simulatedDataItem) return; - -// m_simulatedDataItem->mapper()->setOnValueChange( -// [this]() -// { -// calculateRelativeDifference(); -// }, this); - -// m_simulatedDataItem->mapper()->setOnItemDestroy( -// [this](SessionItem *) { -// m_simulatedDataItem = 0; -// }, this); - -//} - //! Creates an IntensityDataItem which will hold relative difference map between simulation //! and real data. @@ -292,7 +180,7 @@ void FitComparisonWidget::calculateRelativeDifference() } -//! Restores item labels from the backup. +//! Restores item labels from the backup (FIXME currently unused. Do we need to hide labels?). void FitComparisonWidget::restoreLabels(IntensityDataItem *intensityItem) { diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h index f1328b9026ea9b9e7682c2dbb63f12647bc1cb68..13e2c4706871b0e6412f76151f560bb9c3899d09 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h +++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h @@ -39,25 +39,16 @@ public: explicit FitComparisonWidget(QWidget *parent = 0); ~FitComparisonWidget(); - void setItem(SessionItem *item); - virtual QList<QAction *> actionList(); private slots: void onResetViewAction(); protected: -// void setJobItem(class JobItem *jobItem); -// virtual void showEvent(QShowEvent *); -// virtual void hideEvent(QHideEvent *); virtual void subscribeToItem(); virtual void unsubscribeFromItem(); private: - -// void processJobItemItem(JobItem *jobItem); -// void setSimulatedDataItem(IntensityDataItem *simulatedDataItem); - IntensityDataItem *createRelativeDifferenceItem(); void calculateRelativeDifference(); void restoreLabels(IntensityDataItem *intensityItem); @@ -70,17 +61,11 @@ private: ColorMapCanvas *m_realDataPlot; ColorMapCanvas *m_simulatedDataPlot; ColorMapCanvas *m_relativeDiffPlot; - FitFlowWidget *m_fitFlowWidget; ColorMapLabel *m_statusLabel; -// JobItem *m_currentJobItem; -// IntensityDataItem *m_realDataItem; -// IntensityDataItem *m_simulatedDataItem; IntensityDataItem *m_relativeDiffItem; - QAction *m_resetViewAction; - SessionModel *m_tempIntensityDataModel; }; diff --git a/GUI/coregui/Views/FitWidgets/FitFlowWidget.h b/GUI/coregui/Views/FitWidgets/FitFlowWidget.h index 3c616b28fa4f989a4cac69c521176ee5e39d3164..8b9c750635a49bf77f7efa0b7ec9b744a75593ad 100644 --- a/GUI/coregui/Views/FitWidgets/FitFlowWidget.h +++ b/GUI/coregui/Views/FitWidgets/FitFlowWidget.h @@ -26,6 +26,8 @@ class FitSuiteItem; //! The FitFlowWidget class is intended for showing chi2 .vs interation count dependency. //! The main goal is to fill vacant place in FitComparisonWidget. +// FIXME Switch to SessionItemWidget + class BA_CORE_API_ FitFlowWidget : public QFrame { Q_OBJECT