Skip to content
Snippets Groups Projects
Commit 1cb5a7e4 authored by Yurov, Dmitry's avatar Yurov, Dmitry
Browse files

Removed FitComparisonController1D

Redmine: #2106
parent 1a86abfa
No related branches found
No related tags found
No related merge requests found
...@@ -27,25 +27,9 @@ namespace { ...@@ -27,25 +27,9 @@ namespace {
// to provide the best appearance // to provide the best appearance
const double relative_diff_min_2d = 1e-05; const double relative_diff_min_2d = 1e-05;
const double relative_diff_max_2d = 1.0; const double relative_diff_max_2d = 1.0;
const double relative_diff_min_1d = 1e-05;
const double relative_diff_max_1d = 4.0;
template<class DataType>
DataType* simulationData(JobItem* job_item)
{
assert(dynamic_cast<DataType*>(job_item->dataItem()));
return dynamic_cast<DataType*>(job_item->dataItem());
}
template<class DataType>
DataType* realData(JobItem* job_item)
{
assert(dynamic_cast<DataType*>(job_item->realDataItem()->dataItem()));
return dynamic_cast<DataType*>(job_item->realDataItem()->dataItem());
}
} }
class DiffItemController : public QObject class FitComparisonController2D::DiffItemController : public QObject
{ {
public: public:
DiffItemController(const QString& data_type, QObject* parent); DiffItemController(const QString& data_type, QObject* parent);
...@@ -61,6 +45,8 @@ private: ...@@ -61,6 +45,8 @@ private:
DataItem* m_diff_item; DataItem* m_diff_item;
}; };
using DiffItemController = FitComparisonController2D::DiffItemController;
FitComparisonController2D::FitComparisonController2D(QObject* parent) FitComparisonController2D::FitComparisonController2D(QObject* parent)
: QObject(parent) : QObject(parent)
, m_diff_item_controller(new DiffItemController(Constants::IntensityDataType, this)) , m_diff_item_controller(new DiffItemController(Constants::IntensityDataType, this))
...@@ -84,8 +70,8 @@ void FitComparisonController2D::setItem(JobItem* job_item) ...@@ -84,8 +70,8 @@ void FitComparisonController2D::setItem(JobItem* job_item)
clear(); clear();
m_diff_item_controller->setItem(job_item); m_diff_item_controller->setItem(job_item);
auto sim_data_item = simulationData<IntensityDataItem>(job_item); auto sim_data_item = dynamic_cast<IntensityDataItem*>(job_item->dataItem());
auto real_data_item = realData<IntensityDataItem>(job_item); auto real_data_item = dynamic_cast<IntensityDataItem*>(job_item->realDataItem()->dataItem());
double zmin = real_data_item->getLowerZ(); double zmin = real_data_item->getLowerZ();
double zmax = real_data_item->getUpperZ(); double zmax = real_data_item->getUpperZ();
...@@ -133,63 +119,6 @@ void FitComparisonController2D::clear() ...@@ -133,63 +119,6 @@ void FitComparisonController2D::clear()
m_zAxisRepeater->clear(); m_zAxisRepeater->clear();
} }
FitComparisonController1D::FitComparisonController1D(QObject* parent)
: QObject(parent)
, m_diff_item_controller(new DiffItemController(Constants::SpecularDataType, this))
, m_appearanceRepeater(new PropertyRepeater(this))
, m_xAxisRepeater(new PropertyRepeater(this))
{
}
SpecularDataItem* FitComparisonController1D::diffItem()
{
assert(dynamic_cast<SpecularDataItem*>(m_diff_item_controller->diffItem()));
return dynamic_cast<SpecularDataItem*>(m_diff_item_controller->diffItem());
}
void FitComparisonController1D::setItem(JobItem* job_item)
{
assert(job_item);
clear();
m_diff_item_controller->setItem(job_item);
auto sim_data_item = simulationData<SpecularDataItem>(job_item);
auto real_data_item = realData<SpecularDataItem>(job_item);
m_appearanceRepeater->addItem(real_data_item);
m_appearanceRepeater->addItem(sim_data_item);
m_appearanceRepeater->addItem(diffItem());
m_xAxisRepeater->addItem(real_data_item->xAxisItem());
m_xAxisRepeater->addItem(sim_data_item->xAxisItem());
m_xAxisRepeater->addItem(diffItem()->xAxisItem());
diffItem()->setXaxisTitle(sim_data_item->getXaxisTitle());
diffItem()->setYaxisTitle("Relative difference");
diffItem()->setLowerY(relative_diff_min_1d);
diffItem()->setUpperY(relative_diff_max_1d);
}
void FitComparisonController1D::updateDiffData()
{
m_diff_item_controller->updateDiffData();
}
void FitComparisonController1D::resetDiffItem()
{
diffItem()->resetView();
diffItem()->setLowerY(relative_diff_min_1d);
diffItem()->setUpperY(relative_diff_max_1d);
}
void FitComparisonController1D::clear()
{
m_diff_item_controller->unsubscribe();
m_appearanceRepeater->clear();
m_xAxisRepeater->clear();
}
DiffItemController::DiffItemController(const QString& data_type, QObject* parent) DiffItemController::DiffItemController(const QString& data_type, QObject* parent)
: QObject(parent) : QObject(parent)
, m_current_item(nullptr) , m_current_item(nullptr)
......
...@@ -19,7 +19,6 @@ ...@@ -19,7 +19,6 @@
#include <QObject> #include <QObject>
class DataItem; class DataItem;
class DiffItemController;
class IntensityDataItem; class IntensityDataItem;
class JobItem; class JobItem;
class PropertyRepeater; class PropertyRepeater;
...@@ -32,6 +31,8 @@ class SpecularDataItem; ...@@ -32,6 +31,8 @@ class SpecularDataItem;
class BA_CORE_API_ FitComparisonController2D : public QObject class BA_CORE_API_ FitComparisonController2D : public QObject
{ {
public: public:
class DiffItemController;
explicit FitComparisonController2D(QObject* parent = nullptr); explicit FitComparisonController2D(QObject* parent = nullptr);
IntensityDataItem* diffItem(); IntensityDataItem* diffItem();
...@@ -50,26 +51,4 @@ private: ...@@ -50,26 +51,4 @@ private:
PropertyRepeater* m_zAxisRepeater; PropertyRepeater* m_zAxisRepeater;
}; };
//! Provides synchronization between certain properties of fit related SpecularDataItems.
//! Used solely in FitComparisonWidget1D.
class BA_CORE_API_ FitComparisonController1D : public QObject
{
public:
explicit FitComparisonController1D(QObject* parent = nullptr);
SpecularDataItem* diffItem();
void setItem(JobItem* job_item);
void updateDiffData();
void resetDiffItem();
void clear();
private:
DiffItemController* m_diff_item_controller;
PropertyRepeater* m_appearanceRepeater;
PropertyRepeater* m_xAxisRepeater;
};
#endif // FITCOMPARISONCONTROLLER_H #endif // FITCOMPARISONCONTROLLER_H
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment