Skip to content
Snippets Groups Projects
Commit 923121e4 authored by Wuttke, Joachim's avatar Wuttke, Joachim
Browse files

DataItem::updateCoords now with ICoordSystem arg

parent b0974d87
No related branches found
No related tags found
1 merge request!1573break some of the circular dependency of GUI/Model/Data on Device (#565)
Pipeline #95670 passed
......@@ -23,8 +23,8 @@ class AmplitudeAxisItem;
class BasicAxisItem;
class ComboProperty;
class Datafield;
class ICoordSystem;
class ImportDataInfo;
class InstrumentItem;
class MessageService;
//! Abstract base class for IntensityDataItem and SpecularDataItem.
......@@ -99,7 +99,7 @@ public:
void setAxesUnitsCombo(const ComboProperty& unitsCombo);
//! Updates data on the change of axes units
virtual void updateCoords(const InstrumentItem* instrumentItem) = 0;
virtual void updateCoords(const ICoordSystem& converter) = 0;
const BasicAxisItem* xAxisItem() const;
BasicAxisItem* xAxisItem();
......
......@@ -21,7 +21,6 @@
#include "GUI/Model/Data/DataItemUtil.h"
#include "GUI/Model/Data/MaskUnitsConverter.h"
#include "GUI/Model/Data/ProjectionItems.h"
#include "GUI/Model/Device/InstrumentItems.h"
#include "GUI/Support/IO/ImportDataInfo.h"
#include "GUI/Support/Util/Error.h"
#include "GUI/Support/Util/QCP_Util.h"
......@@ -206,15 +205,12 @@ void IntensityDataItem::setZaxisLocked(bool state)
return m_zAxis->setLocked(state);
}
void IntensityDataItem::updateCoords(const InstrumentItem* instrumentItem)
void IntensityDataItem::updateCoords(const ICoordSystem& converter)
{
MaskUnitsConverter mask_converter;
mask_converter.convertToNbins(this);
if (instrumentItem) {
const auto converter = instrumentItem->createCoordSystem();
GUI::Model::DataItemUtil::updateDataAxes(this, *converter);
}
GUI::Model::DataItemUtil::updateDataAxes(this, converter);
mask_converter.convertFromNbins(this);
}
......
......@@ -93,7 +93,7 @@ public:
bool hasProjections() const;
//! Updates data on the change of axes units
void updateCoords(const InstrumentItem* instrumentItem) override;
void updateCoords(const ICoordSystem& converter) override;
//! Returns dimensions and axesbins of data
std::vector<int> shape() const override;
......
......@@ -579,8 +579,7 @@ void RealItem::updateToInstrument(const InstrumentItem* instrument)
if (instrument) {
const auto converter = instrument->createCoordSystem();
GUI::Model::DataItemUtil::setDataItemCoords(data_item, *converter);
if (dataItem())
dataItem()->updateCoords(instrument);
dataItem()->updateCoords(*converter);
return;
}
......
......@@ -20,7 +20,6 @@
#include "GUI/Model/Axis/AmplitudeAxisItem.h"
#include "GUI/Model/Axis/BasicAxisItem.h"
#include "GUI/Model/Data/DataItemUtil.h"
#include "GUI/Model/Device/InstrumentItems.h"
#include "GUI/Support/IO/ImportDataInfo.h"
#include "GUI/Support/Util/Error.h"
#include "GUI/Support/XML/UtilXML.h"
......@@ -112,12 +111,9 @@ void SpecularDataItem::setLog(bool islog)
yAxisItem()->setLogScale(islog);
}
void SpecularDataItem::updateCoords(const InstrumentItem* instrumentItem)
void SpecularDataItem::updateCoords(const ICoordSystem& converter)
{
if (instrumentItem) {
const auto converter = instrumentItem->createCoordSystem();
GUI::Model::DataItemUtil::updateDataAxes(this, *converter);
}
GUI::Model::DataItemUtil::updateDataAxes(this, converter);
}
std::vector<int> SpecularDataItem::shape() const
......
......@@ -43,7 +43,7 @@ public:
void setLog(bool islog);
//! Updates data on the change of axes units
void updateCoords(const InstrumentItem* instrumentItem) override;
void updateCoords(const ICoordSystem&) override;
//! Returns dimensions and axesbins of data
std::vector<int> shape() const override;
......
......@@ -315,7 +315,7 @@ DataItem* JobItem::createDiffDataItem()
// Immediately create coordinate system and axes units
const auto converter = instrumentItem()->createCoordSystem();
GUI::Model::DataItemUtil::setDataItemCoords(diffDataItem(), *converter);
diffDataItem()->updateCoords(instrumentItem());
diffDataItem()->updateCoords(*converter);
if (isSpecularJob())
dynamic_cast<SpecularDataItem*>(diffDataItem())->setDiffPlotStyle();
......
......@@ -14,7 +14,9 @@
#include "GUI/View/Common/DataPropertyWidget.h"
#include "Base/Util/Assert.h"
#include "Device/Coord/ICoordSystem.h"
#include "GUI/Model/Data/DataItem.h"
#include "GUI/Model/Device/InstrumentItems.h"
#include "GUI/Model/Project/ProjectDocument.h"
#include <QFormLayout>
......@@ -51,7 +53,8 @@ void DataPropertyWidget::updateItemCoords(DataItem* item)
if (instrument) {
item->blockSignals(true);
item->updateCoords(instrument);
const auto converter = instrument->createCoordSystem();
item->updateCoords(*converter);
item->blockSignals(false);
emit item->axesUnitsReplotRequested();
}
......
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