From 12b28f5fb3e9f731022b7a677f52d8510716a2a7 Mon Sep 17 00:00:00 2001 From: Gennady Pospelov <g.pospelov@fz-juelich.de> Date: Tue, 24 Oct 2017 15:04:44 +0200 Subject: [PATCH] Relative diff item moved to FitComparisonController --- .../FitWidgets/FitComparisonController.cpp | 17 +++++++++++++ .../FitWidgets/FitComparisonController.h | 8 ++++++ .../Views/FitWidgets/FitComparisonWidget.cpp | 25 +++---------------- .../Views/FitWidgets/FitComparisonWidget.h | 4 --- 4 files changed, 29 insertions(+), 25 deletions(-) diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp index 916f90d3b51..c517254256e 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp +++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.cpp @@ -15,9 +15,26 @@ // ************************************************************************** // #include "FitComparisonController.h" +#include "SessionModel.h" +#include "IntensityDataItem.h" FitComparisonController::FitComparisonController(QObject* parent) : QObject(parent) + , m_relativeDiffItem(nullptr) + , m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel", this)) { + createRelativeDifferenceItem(); +} + +IntensityDataItem* FitComparisonController::diffItem() +{ + return m_relativeDiffItem; +} + +void FitComparisonController::createRelativeDifferenceItem() +{ + m_tempIntensityDataModel->clear(); + m_relativeDiffItem = dynamic_cast<IntensityDataItem*>( + m_tempIntensityDataModel->insertNewItem(Constants::IntensityDataType)); } diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonController.h b/GUI/coregui/Views/FitWidgets/FitComparisonController.h index 92ce39887b9..f7f0c6b6192 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonController.h +++ b/GUI/coregui/Views/FitWidgets/FitComparisonController.h @@ -20,6 +20,9 @@ #include "WinDllMacros.h" #include <QObject> +class SessionModel; +class IntensityDataItem; + //! Provides syncronization between certain properties of fit related IntensityDataItems. //! Part of FitComparisonWidget. @@ -29,8 +32,13 @@ class BA_CORE_API_ FitComparisonController : public QObject public: explicit FitComparisonController(QObject* parent = nullptr); + IntensityDataItem* diffItem(); + private: + void createRelativeDifferenceItem(); + IntensityDataItem* m_relativeDiffItem; + SessionModel* m_tempIntensityDataModel; }; #endif // FITCOMPARISONCONTROLLER_H diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp index abc5e58bcff..621348a7201 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp +++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.cpp @@ -50,9 +50,7 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent) , m_statusLabel(new ColorMapLabel(0, this)) , m_propertyWidget(new IntensityDataPropertyWidget) , m_repeater(new PropertyRepeater(this)) - , m_relativeDiffItem(0) , m_resetViewAction(0) - , m_tempIntensityDataModel(new SessionModel("TempIntensityDataModel")) , m_comparisonController(new FitComparisonController(this)) { QVBoxLayout *vlayout = new QVBoxLayout; @@ -84,13 +82,11 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent) m_resetViewAction->setToolTip("Reset View"); connect(m_resetViewAction, SIGNAL(triggered()), this, SLOT(onResetViewAction())); - m_relativeDiffItem = createRelativeDifferenceItem(); - m_relativeDiffPlot->setItem(diffItem()); + m_relativeDiffPlot->setItem(m_comparisonController->diffItem()); m_propertyWidget->setVisible(false); } -FitComparisonWidget::~FitComparisonWidget() { delete m_tempIntensityDataModel; } QList<QAction*> FitComparisonWidget::actionList() { @@ -135,8 +131,8 @@ void FitComparisonWidget::subscribeToItem() m_repeater->addItem(realDataItem()); m_repeater->addItem(simulatedDataItem()); - QStringList activeProperties = QStringList() << BasicAxisItem::P_MIN << BasicAxisItem::P_MAX; - m_repeater->addItem(diffItem(), activeProperties); +// QStringList activeProperties = QStringList() << BasicAxisItem::P_MIN << BasicAxisItem::P_MAX; +// m_repeater->addItem(diffItem(), activeProperties); m_propertyWidget->setItem(simulatedDataItem()); } @@ -170,19 +166,6 @@ void FitComparisonWidget::onResetViewAction() // m_repeater->setActive(true); } -//! Creates an IntensityDataItem which will hold relative difference map between simulation -//! and real data. - -IntensityDataItem* FitComparisonWidget::createRelativeDifferenceItem() -{ - m_tempIntensityDataModel->clear(); - - IntensityDataItem* result = dynamic_cast<IntensityDataItem*>( - m_tempIntensityDataModel->insertNewItem(Constants::IntensityDataType)); - - return result; -} - void FitComparisonWidget::calculateRelativeDifference() { if (!simulatedDataItem()->getOutputData()) // job failed @@ -219,5 +202,5 @@ IntensityDataItem* FitComparisonWidget::simulatedDataItem() IntensityDataItem* FitComparisonWidget::diffItem() { - return m_relativeDiffItem; + return m_comparisonController->diffItem(); } diff --git a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h index 4346ec0b16e..ef4223cae41 100644 --- a/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h +++ b/GUI/coregui/Views/FitWidgets/FitComparisonWidget.h @@ -40,7 +40,6 @@ class BA_CORE_API_ FitComparisonWidget : public SessionItemWidget public: explicit FitComparisonWidget(QWidget* parent = 0); - ~FitComparisonWidget(); virtual QList<QAction*> actionList(); @@ -52,7 +51,6 @@ protected: void unsubscribeFromItem(); private: - IntensityDataItem* createRelativeDifferenceItem(); void calculateRelativeDifference(); JobItem* jobItem(); @@ -68,9 +66,7 @@ private: IntensityDataPropertyWidget* m_propertyWidget; PropertyRepeater* m_repeater; - IntensityDataItem* m_relativeDiffItem; QAction* m_resetViewAction; - SessionModel* m_tempIntensityDataModel; FitComparisonController* m_comparisonController; }; -- GitLab