Skip to content
Snippets Groups Projects
Commit b69cbc1e authored by Pospelov, Gennady's avatar Pospelov, Gennady
Browse files

Additional PropertyRepeater for basic properties of IntensityDataItem.

parent f222fb51
No related branches found
No related tags found
No related merge requests found
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
FitComparisonController::FitComparisonController(QObject* parent) FitComparisonController::FitComparisonController(QObject* parent)
: QObject(parent) : QObject(parent)
, m_propertyRepeater(new PropertyRepeater(this)) , m_appearanceRepeater(new PropertyRepeater(this))
, m_xAxisRepeater(new PropertyRepeater(this)) , m_xAxisRepeater(new PropertyRepeater(this))
, m_yAxisRepeater(new PropertyRepeater(this)) , m_yAxisRepeater(new PropertyRepeater(this))
, m_zAxisRepeater(new PropertyRepeater(this)) , m_zAxisRepeater(new PropertyRepeater(this))
...@@ -40,6 +40,10 @@ IntensityDataItem* FitComparisonController::diffItem() ...@@ -40,6 +40,10 @@ IntensityDataItem* FitComparisonController::diffItem()
void FitComparisonController::setItems(IntensityDataItem* realDataItem, void FitComparisonController::setItems(IntensityDataItem* realDataItem,
IntensityDataItem* simDataItem) IntensityDataItem* simDataItem)
{ {
m_appearanceRepeater->addItem(realDataItem);
m_appearanceRepeater->addItem(simDataItem);
m_appearanceRepeater->addItem(diffItem());
m_xAxisRepeater->addItem(realDataItem->xAxisItem()); m_xAxisRepeater->addItem(realDataItem->xAxisItem());
m_xAxisRepeater->addItem(simDataItem->xAxisItem()); m_xAxisRepeater->addItem(simDataItem->xAxisItem());
m_xAxisRepeater->addItem(diffItem()->xAxisItem()); m_xAxisRepeater->addItem(diffItem()->xAxisItem());
...@@ -54,13 +58,21 @@ void FitComparisonController::setItems(IntensityDataItem* realDataItem, ...@@ -54,13 +58,21 @@ void FitComparisonController::setItems(IntensityDataItem* realDataItem,
void FitComparisonController::clear() void FitComparisonController::clear()
{ {
m_propertyRepeater->clear(); m_appearanceRepeater->clear();
m_xAxisRepeater->clear(); m_xAxisRepeater->clear();
m_yAxisRepeater->clear(); m_yAxisRepeater->clear();
m_zAxisRepeater->clear(); m_zAxisRepeater->clear();
} }
void FitComparisonController::setActive(bool isActive)
{
m_appearanceRepeater->setActive(isActive);
m_xAxisRepeater->setActive(isActive);
m_yAxisRepeater->setActive(isActive);
m_zAxisRepeater->setActive(isActive);
}
void FitComparisonController::createRelativeDifferenceItem() void FitComparisonController::createRelativeDifferenceItem()
{ {
m_tempIntensityDataModel->clear(); m_tempIntensityDataModel->clear();
......
...@@ -39,10 +39,12 @@ public: ...@@ -39,10 +39,12 @@ public:
void clear(); void clear();
void setActive(bool isActive);
private: private:
void createRelativeDifferenceItem(); void createRelativeDifferenceItem();
PropertyRepeater* m_propertyRepeater; PropertyRepeater* m_appearanceRepeater;
PropertyRepeater* m_xAxisRepeater; PropertyRepeater* m_xAxisRepeater;
PropertyRepeater* m_yAxisRepeater; PropertyRepeater* m_yAxisRepeater;
PropertyRepeater* m_zAxisRepeater; PropertyRepeater* m_zAxisRepeater;
......
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include "IntensityDataPropertyWidget.h" #include "IntensityDataPropertyWidget.h"
#include "AxesItems.h" #include "AxesItems.h"
#include "FitComparisonController.h" #include "FitComparisonController.h"
#include "JobItemUtils.h"
#include <QAction> #include <QAction>
#include <QGridLayout> #include <QGridLayout>
#include <QLabel> #include <QLabel>
...@@ -49,14 +50,14 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent) ...@@ -49,14 +50,14 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent)
, m_fitFlowWidget(new FitFlowWidget) , m_fitFlowWidget(new FitFlowWidget)
, m_statusLabel(new ColorMapLabel(0, this)) , m_statusLabel(new ColorMapLabel(0, this))
, m_propertyWidget(new IntensityDataPropertyWidget) , m_propertyWidget(new IntensityDataPropertyWidget)
, m_resetViewAction(0) , m_resetViewAction(new QAction(this))
, m_comparisonController(new FitComparisonController(this)) , m_comparisonController(new FitComparisonController(this))
{ {
QVBoxLayout *vlayout = new QVBoxLayout; auto vlayout = new QVBoxLayout;
vlayout->setMargin(0); vlayout->setMargin(0);
vlayout->setSpacing(0); vlayout->setSpacing(0);
QGridLayout *gridLayout = new QGridLayout; auto gridLayout = new QGridLayout;
gridLayout->setMargin(0); gridLayout->setMargin(0);
gridLayout->setSpacing(0); gridLayout->setSpacing(0);
...@@ -75,14 +76,12 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent) ...@@ -75,14 +76,12 @@ FitComparisonWidget::FitComparisonWidget(QWidget *parent)
hlayout->addWidget(m_propertyWidget); hlayout->addWidget(m_propertyWidget);
setLayout(hlayout); setLayout(hlayout);
m_resetViewAction = new QAction(this);
m_resetViewAction->setText("Reset View"); m_resetViewAction->setText("Reset View");
m_resetViewAction->setIcon(QIcon(":/images/toolbar16light_refresh.svg")); m_resetViewAction->setIcon(QIcon(":/images/toolbar16light_refresh.svg"));
m_resetViewAction->setToolTip("Reset View"); m_resetViewAction->setToolTip("Reset View");
connect(m_resetViewAction, SIGNAL(triggered()), this, SLOT(onResetViewAction())); connect(m_resetViewAction, &QAction::triggered, this, &FitComparisonWidget::onResetViewAction);
m_relativeDiffPlot->setItem(m_comparisonController->diffItem()); m_relativeDiffPlot->setItem(m_comparisonController->diffItem());
m_propertyWidget->setVisible(false); m_propertyWidget->setVisible(false);
} }
...@@ -108,12 +107,6 @@ void FitComparisonWidget::subscribeToItem() ...@@ -108,12 +107,6 @@ void FitComparisonWidget::subscribeToItem()
if (auto simItem = simulatedDataItem()) { if (auto simItem = simulatedDataItem()) {
simItem->mapper()->setOnValueChange([this]() { calculateRelativeDifference(); }, this); simItem->mapper()->setOnValueChange([this]() { calculateRelativeDifference(); }, this);
// simItem->mapper()->setOnPropertyChange([this](const QString& name)
// {
// if (name == IntensityDataItem::P_AXES_UNITS) {
// calculateRelativeDifference();
// }
// }, this);
} }
calculateRelativeDifference(); calculateRelativeDifference();
...@@ -129,6 +122,15 @@ void FitComparisonWidget::subscribeToItem() ...@@ -129,6 +122,15 @@ void FitComparisonWidget::subscribeToItem()
m_comparisonController->setItems(realDataItem(), simulatedDataItem()); m_comparisonController->setItems(realDataItem(), simulatedDataItem());
if (auto diff_item = diffItem()) {
diff_item->mapper()->setOnPropertyChange([this](const QString& name)
{
if (name == IntensityDataItem::P_AXES_UNITS) {
JobItemUtils::updateDataAxes(diffItem(), jobItem()->instrumentItem());
}
}, this);
}
m_propertyWidget->setItem(simulatedDataItem()); m_propertyWidget->setItem(simulatedDataItem());
} }
...@@ -140,11 +142,16 @@ void FitComparisonWidget::unsubscribeFromItem() ...@@ -140,11 +142,16 @@ void FitComparisonWidget::unsubscribeFromItem()
if (simulatedDataItem()) if (simulatedDataItem())
simulatedDataItem()->mapper()->unsubscribe(this); simulatedDataItem()->mapper()->unsubscribe(this);
if (diffItem())
diffItem()->mapper()->unsubscribe(this);
m_comparisonController->clear(); m_comparisonController->clear();
} }
void FitComparisonWidget::onResetViewAction() void FitComparisonWidget::onResetViewAction()
{ {
m_comparisonController->setActive(false);
if (auto item = realDataItem()) if (auto item = realDataItem())
item->resetView(); item->resetView();
...@@ -155,6 +162,8 @@ void FitComparisonWidget::onResetViewAction() ...@@ -155,6 +162,8 @@ void FitComparisonWidget::onResetViewAction()
diffItem()->resetView(); diffItem()->resetView();
diffItem()->setLowerAndUpperZ(relative_diff_min, relative_diff_max); diffItem()->setLowerAndUpperZ(relative_diff_min, relative_diff_max);
} }
m_comparisonController->setActive(true);
} }
void FitComparisonWidget::calculateRelativeDifference() void FitComparisonWidget::calculateRelativeDifference()
...@@ -172,6 +181,8 @@ void FitComparisonWidget::calculateRelativeDifference() ...@@ -172,6 +181,8 @@ void FitComparisonWidget::calculateRelativeDifference()
diffItem()->xAxisItem()->setItemValue(BasicAxisItem::P_TITLE, simulatedDataItem()->getXaxisTitle()); diffItem()->xAxisItem()->setItemValue(BasicAxisItem::P_TITLE, simulatedDataItem()->getXaxisTitle());
diffItem()->yAxisItem()->setItemValue(BasicAxisItem::P_TITLE, simulatedDataItem()->getYaxisTitle()); diffItem()->yAxisItem()->setItemValue(BasicAxisItem::P_TITLE, simulatedDataItem()->getYaxisTitle());
diffItem()->setLowerAndUpperZ(relative_diff_min, relative_diff_max); diffItem()->setLowerAndUpperZ(relative_diff_min, relative_diff_max);
diffItem()->setAxesRangeToData();
} }
JobItem* FitComparisonWidget::jobItem() JobItem* FitComparisonWidget::jobItem()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment